Java: руководство для начинающих (ЛП) - Шилдт Герберт
Шрифт:
Интервал:
Закладка:
Дополните оператор switch операторами break и continue, как показано ниже. case '6': System.out.println("The break:n"); System.out.println("break; or break label;"); break; case ’71: System.out.println("The continue:n"); System.out.println("continue; or continue label;"); break;
Ниже приведен весь исходный код программы из файла Help3.java./*Пример для опробования 3.3.Завершенная справочная система по управляющимоператорам Java, обрабатывающая многократные запросы.*/class Не1рЗ { public static void main(String args[]) throws java.io.IOException { char choice, ignore; for(;;) { do { System.out.println("Help on:"); System.out.println(" 1. if"); System.out.println(" 2. switch"); System.out.println(" 3. for"); System.out.println(" 4. while"); System.out.println(" 5. do-while"); System.out.println(" 6. break"); System.out.println(" 7. continuen"); System.out.print("Choose one (q to quit): "); choice = (char) System.in.read(); do { ignore = (char) System.in.read(); } while(ignore != 'n'); } while( choice < '1' | choice > '7' & choice != 'q'); if (choice == 'q') break; 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 (11 // ..."); System.out.println("}"); break; case '3' : System.out.println("The for:n"); System.out.print("for(init; condition; iteration)"); System.out.println(" statement;"); break; case '4' : System.out.println("The while:n"); System.out.println("while(condition) statement;"); break; case '5': System.out.println("The do-while:n"); System.out.println("do {"); System.out.println(" statement;"); System.out.println("} while (condition);"); break; case '6' : System.out.println("The break:n"); System.out.println("break; or break label;"); break; case '7': System.out.println("The continue:n"); System.out.println("continue; or continue label;"); break; } System.out.println(); } }}
Ниже приведен один из возможных вариантов выполнения данной программы в диалоговом режиме. Help on: 1. if 2. switch 3. for 4. while 5. do-while 6. break 7. Continue Choose one (q to quit): 1 The if: if(condition) statement; else statement; Help on: 1. if 2. switch 3. for 4. while 5. do-while 6. break 7. Continue Choose one (q to quit): 6 The break: break; or break label; Help on: 1. if 2. switch 3. for 4. while 5. do-while 6. break 7. Continue Choose one (q to quit): qВложенные циклы
Как следует из предыдущих примеров программ, один цикл может быть вложен в другой. С помощью вложенных циклов решаются самые разные задачи. Поэтому, прежде чем завершить рассмотрение циклов в Java, уделим еще немного внимания вложенным циклам. Ниже приведен пример программы, содержащей вложенные циклы for. С помощью этих циклов для каждого числа от 2 до 100 определяется ряд множителей, на которые данное число делится без остатка./* Использовать вложенные циклы для выявления множителей чисел от 2 до 100.*/class FindFac { public static void main(String args[]) { for(int i=2; i <= 100; i++) { System.out.print("Factors of " + i + ": ") ; for(int j = 2; j < i; j++) if((i%j) == 0) System.out.print(j + " "); System.out.println() ; } }}
Ниже приведена часть результата выполнения данной программы.Factors of 2:Factors of 3:Factors of 4: 2Factors of 5:Factors of 6: 2 3Factors of 7:Factors of 8: 2 4Factors of 9: 3Factors of 10: 2 5Factors of 11:Factors of 12: 2 3 4Factors of 13:Factors of 14: 2 7Factors of 15: 3 5Factors of 16: 2 4 8Factors of 17:Factors of 18: 2 3 6Factors of 19:Factors of 20: 2 4 5В данной программе переменная i из внешнего цикла последовательно принимает значения до 2 до 100. А во внутреннем цикле для каждого числа от 2 до текущего значения переменной i выполняется проверка, делится ли это значение без остатка. В качестве упражнения попробуйте сделать данную программу более эффективной. (Подсказка: число итераций во внутреннем цикле можно уменьшить.)## Упражнение для самопроверки по материалу главы 31. Напишите программу, которая вводила бы символы с клавиатуры до тех пор, пока не встретится точка. Предусмотрите в программе счетчик числа пробелов. Сведения о количестве пробелов должны выводиться в конце программы.2. Какова общая форма многоступенчатой конструкции if-else-if?3. Допустим, имеется следующий фрагмент кода:if(х < 10) if (у > 100) { if(!done) х = z; else у = z;}else System.out.println("error"); // что если?```
С каким из операторов if связан последний оператор else?
Напишите цикл for, в котором перебирались бы значения от 1000 до 0 с шагом -2.
Корректен ли следующий фрагмент кода?for (int i = 0; i < num; i++) sum += i;count = i;
Какие действия выполняет оператор break? Опишите оба варианта этого оператора.
Какое сообщение будет выведено после выполнения оператора break в приведенном ниже фрагменте кода?for(i =0; i < 10; i++) { while(running) { if(x<y) break; // ... } System.out.println("after while");}System.out.println("After for");`
Что будет выведено на экран в результате выполнения следующего фрагмента кода?for(int i = 0; i<10; i++) { System.out.print(i + " "); if ( (i%2) == 0) continue; System.out.println();}
Итерационное выражение для цикла for не обязательно должно изменять переменную цикла на фиксированную величину. Эта переменная может принимать произвольные значения. Напишите программу, использующую цикл for для вывода чисел в геометрической прогрессии 1, 2, 4, 8, 16, 32 и т.д.
Код ASCII символов нижнего регистра отличается от кода соответствующих символов верхнего регистра на величину 32. Следовательно, для преобразования строчной буквы в прописную нужно уменьшить ее код на 32. Используйте это обстоятельство для написания программы, осуществляющей ввод символов с клавиатуры. При выводе результатов данная программа должна преобразовывать строчные буквы в прописные, а прописные — в строчные. Остальные символы не должны изменяться. Работа программы должна завершаться после того, как пользователь введет с клавиатуры точку И наконец, сделайте так, чтобы программа отображала число символов, для которых был изменен регистр.
Что такое бесконечный цикл?
Должна ли метка, используемая вместе с оператором break, быть определена в кодовом блоке, содержащем этот оператор?
Глава 4 Введение в классы, объекты и методы
Основные навыки и понятия
Основные положения о классах
Создание объектов
Присваивание ссылок на объекты
Создание методов, возврат значений и использование параметров
Применение ключевого слова return
Возврат значения из метода
Добавление параметров в метод
Применение конструкторов
Создание параметризированных конструкторов
Представление об операторе new
Представление о “сборке мусора” и методах завершения
Применение ключевого слова this
Прежде чем продолжить изучение Java, следует ознакомиться с классами. Классы, по существу, составляют самые основы языка Java, поскольку класс определяет характер объекта. Следовательно, классы служат прочным основанием для объектно-ориентированного программирования на Java. В классе определяются данные и код, который выполняет действия над этими данными. Код находится внутри методов. Эта глава посвящена классам, объектам и методам, т.е. самим основам Java. Имея представление о классах, объектах и методах, вы сможете писать более сложные программы и лучше уяснить те элементы языка Java, которые будут описаны в последующих главах.Основные положения о классах