END SELECT
Значение главного выражения в дальнейшем используется для проверки в тестовых условиях, начинающихся с ключевого слова CASE. Если одно из тестовых условий принимает значение «истинна», то выполняется соответствующий блок операторов, после этого управление передается оператору, следующему за END SELECT (конец выбора). Блок операторов CASE ELSE выполняется только в том случае, если главное_выражение не удовлетворяет ни одному из тестовых_условий блоков CASE. Если тест_выражение удовлетворяет нескольким условиям CASE, выполняется блок операторов, идущий первым. Блоки SELECT CASE могут быть вложенными. Каждый блок должен иметь завершение END SELECT. В качестве главного выражения может служить любое допустимое в Qbasic выражение, значение которого число или строка, например, х, 5, (x + 10) * 4, s$ + «456» Значение этого выражения проверяется в списках тестовых условий, каждое из которых может записываться в одной из трёх допустимых форм: 1. Проверяемое значение должно равняться значению одного из перечисленных через запятую выражений, тогда считается, что данное тестовое условие истинно. {список – выражений – через – запятую} Например: CASE 1,23,x%+6
2. Проверяемое значение должно укладываться в диапазон значений. {выражение – 1} TO {выражение – 2} Например: CASE 5 TO 25
3. Проверяемое значение сравнивается с каким-либо выражением. CASE IS {оператор_сравнения} {проверочное_выражение} Ключевое слово IS обозначает значение главного выражения – оно сравнивается с проверочным выражением. Например: CASE IS < 100 Данное тестовое условие окажется истинным, если значение главного выражения будет меньше, чем 100. Для того чтобы окончательно разобраться в том, как работает оператор, напишем программу уже разобранной задачи из примера 6. Программа CLS INPUT "a ="; a SELECT CASE a CASE IS <= 0 y = 0 CASE IS > 1 y = a ^ 4 CASE ELSE y = a END SELECT PRINT "a="; a, "y="; y END
Программа CLS INPUT "a, b, c="; a, b, c D=b^2-4*a*c SELECT CASE D CASE IS = 0 x = -b/(2*a) ? “x=”;x CASE IS > 0 X1 = (-b+sqr(D)/(2*a) X2 = (-b-sqr(D)/(2*a) ? “x1=”;x1^? “x1=”;x1 CASE ELSE ? “Нет решений!!!” END SELECT END
|