После этого в программе используется оператор switch для отображения сведений о синтаксисе выбранного оператора.switch(choice) { case 111: System.out.println("The if:\n"); System.out.println("if(condition) statement;"); System.out.println("else statement;"); break; case 12’ : System.out.println("The switch:\n"); System.out.println("switch(expression) {"); System.out.println(" case constant:"); System.out.println(" statement sequence"); System.out.println(" break;"); System.out.println (" // ..."); System.out.println("}"); break; default: System.out.print("Selection not found."); } Обратите внимание на то, как в ветви default перехватываются сведения о неправильно сделанном выборе. Так, если пользователь введет значение 3, оно не совпадет ни с одной из констант в ветвях case оператора switch, и тогда управление будет передано коду в ветви default.
Ниже приведен весь исходный код программы из файла Help.java. /* Пример для опробования 3.1. Простая справочная система. */ class Help { public static void main(String args[]) throws java.io.IOException { char choice; System.out.println("Help on:") ; System.out.println(" 1. if"); System.out.println(" 2. switch"); System.out.print("Choose one: "); choice = (char) System.in.read; System.out.println("\n") ; switch(choice) { case '1': System.out.println("The if:\n"); System.out.println("if(condition) statement;"); System.out.println("else statement;"); break; case '2': System.out.println("The switch:\n"); System.out.println("switch(expression) {"); System.out.println(" case constant:"); System.out.println(" statement sequence"); System.out.println(" break;"); System.out.println (" // ..."); System.out.println ("}"); break; default: System.out.print("Selection not found."); } } }
Выполнение этой программы дает следующий результат: Help on: 1. if 2. switch Choose one: 1 The if: if(condition) statement; else statement; Цикл for
Цикл for уже был представлен в главе 1, а здесь он рассматривается более подробно. Вас должны приятно удивить эффективность и гибкость этого цикла. Прежде всего обратимся к самым основным и традиционным формам цикла for.
Ниже приведена общая форма цикла for для повторного выполнения единственного оператора. for (инициализация; условие; итерация) оператор;
А вот как выглядит его форма для повторного выполнения кодового блока. fог (инициализа ция; условие; итера ция) { последовательность операторов; }
где инициализация, как правило, представлена оператором присваивания, задающим первоначальное значение переменной, которая выполняет роль счетчика и управляет циклом; условие — это логическое выражение, определяющее необходимость повторения цикла; а итерация — выражение, определяющее величину, на которую должно изменяться значение переменной, управляющей циклом, на каждом шаге цикла. Обратите внимание на то, что эти три основные части оператора цикла for должны быть разделены точкой с запятой. Выполнение цикла for будет продолжаться до тех пор, пока проверка условия дает истинный результат. Как только эта проверка даст ложный результат, цикл завершится, а выполнение программы будет продолжено с оператора, следующего после цикла for.
Ниже приведен пример программы, где цикл for служит для вывода на экран значений квадратного корня чисел в пределах от 1 до 99. В данной программе отображается также ошибка округления, допущенная при вычислении квадратного корня. // Вывод квадратных корней чисел от 1 до 99 вместе с ошибкой округления, class SqrRoot { public static void main(String args[]) { double num, sroot, rerr; for(num = 1.0; num < 100.0; num++) { sroot = Math.sqrt(num); System.out.println("Square root of " + num + " is " + sroot); // вычислить ошибку округления rerr = num - (sroot * sroot); System.out.println("Rounding error is " + rerr); System.out.println ; } } }
Обратите внимание на то, что ошибка округления вычисляется путем возведения в квадрат квадратного корня числа. Полученное значение отнимается от исходного числа.