Почему мы используем выражение «End If»? - PullRequest
0 голосов
/ 24 января 2019

Почему мы пишем END IF оператор в этой программе? Без написания этого мы можем легко получить наш результат. Есть ли какой-нибудь пример, с помощью которого вы можете объяснить мне использование выражения END IF?

Я пробовал это:

INPUT X
IF X>10 THEN PRINT "X IS GREATER THAN 10" ELSE PRINT "X IS NOT GREATER THAN 10"
END

тогда я тоже получаю ожидаемый результат.

Реальный код:

INPUT X
IF X>10 THEN 
    PRINT "X IS GREATER THAN 10"
ELSE
    PRINT "X IS NOT GREATER THAN 10"
END IF
END

ОЖИДАЕМЫЕ И ЖЕЛАЕМЫЕ
ПРИМЕР:
Когда X=5, тогда вывод будет «X НЕ БОЛЬШЕ, ЧЕМ 10».

Ответы [ 4 ]

0 голосов
/ 11 марта 2019

Другой пример определения 3 входных значений:

COLOR 15
DO
    PRINT "Enter values(y/n)";: INPUT x$
    IF LCASE$(x$) = "n" THEN END
    PRINT "Enter X,Y,Z";: INPUT X, Y, Z
    GOSUB Calculate
LOOP
END
Calculate:
SELECT CASE X
    CASE IS > 0
        SELECT CASE Y
            CASE IS > 0
                SELECT CASE Z
                    CASE IS > 0
                        PRINT "X is positive, Y is positive, Z is positive."
                    CASE IS < 0
                        PRINT "X is positive, Y is positive, Z is negative."
                    CASE ELSE
                        PRINT "X is positive, Y is positive, Z is zero."
                END SELECT
            CASE IS < 0
                SELECT CASE Z
                    CASE IS > 0
                        PRINT "X is positive, Y is negative, Z is positive."
                    CASE IS < 0
                        PRINT "X is positive, Y is negative, Z is negative."
                    CASE ELSE
                        PRINT "X is positive, Y is negative, Z is zero."
                END SELECT
            CASE ELSE
                SELECT CASE Z
                    CASE IS > 0
                        PRINT "X is positive, Y is zero, Z is positive."
                    CASE IS < 0
                        PRINT "X is positive, Y is zero, Z is negative."
                    CASE ELSE
                        PRINT "X is positive, Y is zero, Z is zero."
                END SELECT
        END SELECT
    CASE IS < 0
        SELECT CASE Y
            CASE IS > 0
                SELECT CASE Z
                    CASE IS > 0
                        PRINT "X is negative, Y is positive, Z is positive."
                    CASE IS < 0
                        PRINT "X is negative, Y is positive, Z is negative."
                    CASE ELSE
                        PRINT "X is negative, Y is positive, Z is zero."
                END SELECT
            CASE IS < 0
                SELECT CASE Z
                    CASE IS > 0
                        PRINT "X is negative, Y is negative, Z is positive."
                    CASE IS < 0
                        PRINT "X is negative, Y is negative, Z is negative."
                    CASE ELSE
                        PRINT "X is negative, Y is negative, Z is zero."
                END SELECT
            CASE ELSE
                SELECT CASE Z
                    CASE IS > 0
                        PRINT "X is negative, Y is zero, Z is positive."
                    CASE IS < 0
                        PRINT "X is negative, Y is zero, Z is negative."
                    CASE ELSE
                        PRINT "X is negative, Y is zero, Z is zero."
                END SELECT
        END SELECT
    CASE ELSE
        SELECT CASE Y
            CASE IS > 0
                SELECT CASE Z
                    CASE IS > 0
                        PRINT "X is zero, Y is positive, Z is positive."
                    CASE IS < 0
                        PRINT "X is zero, Y is positive, Z is negative."
                     CASE ELSE
                        PRINT "X is zero, Y is positive, Z is zero."
                END SELECT
            CASE IS < 0
                SELECT CASE Z
                    CASE IS > 0
                        PRINT "X is zero, Y is negative, Z is positive."
                    CASE IS < 0
                        PRINT "X is zero, Y is negative, Z is negative."
                    CASE ELSE
                        PRINT "X is zero, Y is negative, Z is zero."
                 END SELECT
            CASE ELSE
                SELECT CASE Z
                     CASE IS > 0
                        PRINT "X is zero, Y is zero, Z is positive."
                    CASE IS < 0
                        PRINT "X is zero, Y is zero, Z is negative."
                    CASE ELSE
                         PRINT "X is zero, Y is zero, Z is zero."
                END SELECT
         END SELECT
END SELECT
RETURN
0 голосов
/ 26 января 2019

Несколько операторов с отступом if / then / else могут быть объединены в структуру проще, чем оператор из одной строки, например:

INPUT X
IF X > 10 THEN
    PRINT "X is greater than 10."
ELSE
    IF X < 10 THEN
        PRINT "X is less than 10."
    ELSE
        PRINT "X is equal to 10."
    END IF
END IF

То же, что:

INPUT X
IF X > 10 THEN PRINT "X is greater than 10." ELSE IF X < 10 THEN PRINT "X is less than 10." ELSE PRINT "X is equal to 10."

Чрезвычайно сложно проверить значение 3 чисел в одной строке, если / тогда, например:

INPUT X, Y, Z
IF X = 0 AND Y = 0 AND Z = 0 THEN PRINT "All zero." ELSE IF X = 0 AND Y <> 0 AND Z = 0 THEN PRINT "X and Z zero." ELSE IF X <> 0 AND Y = 0 AND Z = 0 THEN PRINT "Y and Z zero." ELSE IF X = 0 AND Y = 0 AND Z <> 0 THEN PRINT "X and Y zero." ELSE IF X <> 0 AND Y <> 0 AND Z = 0 THEN PRINT "X and Y non-zero." ELSE IF X <> 0 AND Y = 0 AND Z <> 0 THEN PRINT "X and Z non-zero." ELSE IF X = 0 AND Y <> 0 AND Z <> 0 THEN PRINT "Y and Z non-zero." ELSE PRINT "All non-zero."
0 голосов
/ 09 марта 2019

Альтернативой является использование регистра выбора:

INPUT X
SELECT CASE X
    CASE IS > 10
        PRINT "X is greater than 10."
    CASE IS < 10
        PRINT "X is less than 10."
    CASE ELSE
        PRINT "X is equal to 10."
END SELECT
0 голосов
/ 24 января 2019

END IF необходим для указания окончания структуры IF, ELSE IF, ELSE, записанной в несколько строк. Если нет END IF (отсутствие которого приведет к ошибке), то операторы в структуре IF, ELSE IF, ELSE будут считаться частью структуры IF, ELSE IF, ELSE до тех пор, пока не появится END IF. Если бы не было END IF, использование структуры IF, ELSE IF, ELSE было бы ограничено для использования только в конце программы

Рассмотрим ситуацию, когда вы хотите запустить 100 конкретных строк, если условие истинно, и 100 других строк, если условие ложно, и еще 100 строк, которые всегда должны выполняться после структуры IF-ELSE. Теперь очевидно, что вы не можете написать все эти 200 IF ELSE связанные строки в одну строку. И если бы не было END IF, тогда не было бы способа выполнить следующие 100 строк.


END IF недопустимо для операторов IF, ELSE IF, ELSE, записанных в одну строку. Любое утверждение в следующей строке будет считаться из структуры IF, ELSE IF, ELSE. Не всегда возможно закодировать все необходимые функции в одной строке. Таким образом, его можно использовать только тогда, когда небольшая функциональность, которая может быть записана в одну строку, должна запускаться на основе некоторых условий. Так что это недолговечный подход с одной линией.

...