2013-09-07 3 views
-1

Почему варианты 1 и 4 правильные и 2 и 3 нет?Если vs elif и практическое применение

Переменные grade1 и grade2 представляют классы в двух направлениях. Переменная num_passed в настоящее время относится к 0. Выберите фрагменты кода, которые делают num_passed, относятся к числу пройденных курсов (с 50 или выше).

Option 1 
if grade1 >= 50: 
num_passed = num_passed + 1 
if grade2 >= 50: 
num_passed = num_passed + 1 

Option 2 
if grade1 >= 50: 
num_passed = num_passed + 1 
elif grade2 >= 50: 
num_passed = num_passed + 1 

Option 3 
if grade1 >= 50 and grade2 >= 50: 
num_passed = 2 
if grade1 >= 50: 
num_passed = 1 
if grade2 >= 50: 
num_passed = 1 

Option 4 
if grade1 >= 50 and grade2 >= 50: 
num_passed = 2 
elif grade1 >= 50: 
num_passed = 1 
elif grade2 >= 50: 
num_passed = 1 
+2

Подсказки: Что означает «elif»? Какие строки каждой из этих опций выполняются, если оба уровня выше 50? – Sneftel

ответ

1

if и elif являются взаимоисключающими предложениями: либо один, либо другой, либо другой - никогда не оба. Итак, в (1), оба огня, и это нормально, потому что вы добавили в num_passed, не устанавливая его на определенное значение. (2) не делает то, что вы хотите, потому что по определению, если одно предложение срабатывает, то другое не делает. (3) не делает то, что вы хотите, потому что каждое предложение оценивается, а последнее - выигрывает. Например, если оба класса проходят, то вы устанавливаете num_passed на 2, а затем вы устанавливаете его на 1, а затем вы снова устанавливаете его в 1. (4) работает, потому что он избегает ловушки трех - только один (или ни один) из них будет стрелять.

0

Это должна быть элементарная логика. класс 1 и класс 2 являются независимыми переменными, и либо оба, либо ни один из них не может превышать 50.

Смежные вопросы