2016-08-03 5 views
1

なステートメント-違い:Pythonの場合、私はループ型の場合と統合Ifステートメントのフォームを学ぼうと、彼らは同じ結果を与えるので、私はこれらのコードの違いを理解することはできません

grade = [100, 97, 73, 56, 78,34] 
for i in range(0,len(grade)): 
    if grade[i]%2 == 0: 
     grade[i]= grade[i]+2 
    if grade[i]%3 ==0: 
     grade[i]= grade[i]+3 
    if grade[i]%5 ==0: 
     grade[i]= grade[i]+5 
print grade 

と、これを:

grade = [100, 97, 73, 56, 78,34] 
for i in range(0,len(grade)): 
    if grade[i]%2 == 0: 
     grade[i]= grade[i]+2 
     if grade[i]%3 ==0: 
       grade[i]= grade[i]+3 
      if grade[i]%5 ==0: 
       grade[i]= grade[i]+5 
print grade 

答えて

2

あなたがお互い以下if文を持っているとき、それは何かが1 OR別に一致させることができている可能性があります。 ifステートメントがネストされている場合は、条件を通過するには、別のANDと一致する必要があります。

あなたの最初のケースで検討してください:%2 == 0%5 == 0を渡しますが、%3 == 0は渡しません。 2番目のケースでは、最初のテストに合格し、入れ子にはなりません。

たとえば、30は、どちらの場合もすべてifステートメントを渡します。一方と第二のコードによって下又は1へ戻る実行条件が最初のステートメントが真である場合に実行3つのネストされた場合に条件文が含まれている場合

+0

私は今試してみましょう - 2番目のケースは3つの条件になります – newGIS

+0

はい、前の条件が一致したときに2,3を追加したためです。最初のテストに合格した '100'の場合、' 102'を加えて2回目のテストに合格し、次に '105'を渡すので、3度目も合格します。それはすべての3つの 'if'sを通過するが、すべてではない。 – PatNowak

1

両方のコードは同じであるが、主な違いは、最初のコードでは、三含ま

learn more from c-sharpcorner.com

+0

あなたの答えは受け入れられた回答とは大きく異なりますか? –

関連する問題