Какая ошибка допущена в следующем фрагменте кода: for(i = 0; i < 10; i++) { int sum; sum = sum + i; } System.out.println("Sum is: " + sum); В этом фрагменте кода имеются две существенные ошибки. Во-первых, переменная sum создается на каждом шаге цикла for, а следовательно, в промежутке между последовательными итерациями предыдущее значение подсчитываемой суммы не будет сохраняться в этой переменной. И во-вторых, переменная sum недоступна за пределами кодового блока, в котором она объявлена. Поэтому ссылка на нее при вызове метода println недопустима.
Поясните отличие между префиксной и постфиксной формами оператора инкремента. Если оператор инкремента предшествует операнду, исполняющая система Java выполнит операцию до извлечения значения операнда и использования его в остальной части выражения. Если же оператор инкремента следует за операндом, исполняющая система сначала извлечет значение операнда и лишь затем инкрементирует сам операнд.
Покажите, каким образом укороченный логический оператор И может предотвратить деление на нуль. if((b != 0) && (val / b)) ... Приложение А. Ответы на вопросы для самопроверки 559.
К какому типу продвигаются типы byte и short при вычислении выражения? В выражении типы byte и short продвигаются к типу int.
Когда возникает потребность в явном приведении типов? Явное приведение типов требуется при обращении с несовместимыми типами или в том случае, если преобразование типов приводит к сужению диапазона допустимых значений.
Напишите программу, которая находила бы простые числа в пределах от 2 до 100. // Нахождение простых чисел в пределах от 2 до 100. class Prime { public static void main(String args[]) { int i, j; boolean isprime; for(i=2; i < 100; i++) { isprime = true; // проверить, делится ли число без остатка for(j=2; j < i/j; j++) // если число делится без остатка, значит, оно простое if ( (i%j) == 0) isprime = false; if(isprime) System.out.println(i + " is prime."); } } }
Влияют ли лишние скобки на эффективность выполнения программ? Нет, не влияют.
Определяет ли кодовый блок область действия переменных? Да, определяет. Глава 3. Управляющие операторы
Напишите программу, которая вводила бы символы с клавиатуры до тех пор, пока не встретится точка. Предусмотрите в программе счетчик числа пробелов. Сведения о количестве пробелов должны выводиться в конце программы. // Подсчет пробелов, class Spaces { public static void main(String args[]) throws java.io.IOException { char ch; int spaces = 0; System.out.println("Enter a period to stop."); do { ch = (char) System.in.read; if(ch == 1 ') spaces++; } while (ch ! = System.out.println("Spaces: " + spaces); } }
Какова общая форма многоступенчатой конструкции if-else-if? if(условие) оператор; else if{условие) оператор; else if(условие) оператор; else оператор;
Допустим, имеется следующий фрагмент кода: if (х < 10) if(у > 100) { if(!done) х = z; else у = z; } else System.out.println("error"); // что если? С каким из операторов if связан последний оператор else? Последний оператор else соответствует билижайшему оператору if того же уровня, т.е. if (у > 100).
Напишите цикл for, в котором перебирались бы значения от 1000 до 0 с шагом -2. for(int i = 1000; i >= 0; i -= 2) // ...
Корректен ли следующий фрагмент кода? for(int i = 0; i < num; i++) sum += i; count = i; Нет, не корректен. Переменная i недоступна за пределами цикла for, в котором она объявлена.
Какие действия выполняет оператор break? Опишите оба рарианта этого оператора. Оператор break без метки вызывает немедленное завершение текущего цикла или выражения switch. А оператор break с меткой передает управление в конец помеченного блока.