Условное ветвление: оператор else (Разбор задачи 15 урока 9.1)
Primary tabs
Условие:
Есть программа:
var m,s:integer; begin writeln('Vvedite chislo M'); readln(m); writeln('Vvedite chislo M'); readln(s); if (s = 1) then writeln('soobchenie 1'); if (s = m) then writeln('soobchenie 2'); end;
-- при этом известно, что если s
равно 1, то на экран должно вывестись только первое сообщение (а второе выводиться не должно), а если s
не равно 1, но равно m
, то второе (а первое выводиться не должно).
Но сейчас программа работает не так, исправьте это.
Возможное решение
Сейчас программа каждый раз проверяет два условия, и в случае, если и s=1, и m=1, выводит оба сообщения, так как оба условия выполняются.
В задаче же требуется, чтобы вывелось только одно сообщение. Для этого нужно, чтобы второе условие проверялось, только если не выполнено первое (то есть s не равно 1 и первое сообщение не вывелось).
Этого можно добиться, добавив ветку ложности - оператор else. Тогда второе условие проверится только если s не равно 1.
var m,s:integer; begin writeln('Vvedite chislo M'); readln(m); writeln('Vvedite chislo S'); readln(s); if (s = 1) then writeln('soobchenie 1'); else if (s = m) then writeln('soobchenie 2'); end;
- Log in to post comments
- 32 reads