Чтение онлайн

на главную - закладки

Жанры

Java: руководство для начинающих
Шрифт:

Аналогичная ситуация возникает при выполнении операций с символьными операндами. Например, в следующем фрагменте кода требуется обратное приведение к типу char, поскольку операнды chi и ch2 в выражении продвигаются к типу int: char chi = 'a', ch2 = ' b'; chi = (char) (chi + ch2);

Без приведения типов результат сложения операндов chi и ch2 будет иметь тип int, и поэтому его нельзя присвоить переменной типа char.

Приведение типов необходимо не только при присваивании значения переменной. Рассмотрим в качестве примера следующую программу. В ней приведение типов выполняется для того, чтобы дробная часть числового значения типа double не была утеряна. В противном

случае операция деления будет выполняться над целыми числами. // Приведение типов для правильного вычисления выражения, class UseCast { public static void main(String args[]) { int i; for(i = 0; i < 5; i++) { System, out .println (i + " / 3: 11 + i / 3) ; System.out.println(i + " / 3 with fractions: " + (double) i / 3); System.out.println; } } }

Ниже приведен результат выполнения данной программы. 0 / 3: 0 0/3 with fractions: 0.0 1 / 3: 0 1/3 with fractions: 0.3333333333333333 2 / 3: 0 2/3 with fractions: 0.6666666666666666 3/3: 1 3/3 with fractions: 1.0 4 / 3: 1 4/3 with fractions: 1.3333333333333333 Пробелы и круглые скобки

Для того чтобы сделать выражения в коде Java более удобными для восприятия, в них можно использовать символы табуляции и пробелы. Например, ниже приведены два варианта одного и того же выражения, но второй вариант читается гораздо легче. х=10/у*(127/х) ; х = 10 / у * (127/х);

Круглые скобки повышают порядок предшествования содержащихся в них операций. (Аналогичное правило применяется и в алгебре.) Избыточные скобки допустимы. Они не приводят к ошибке и не замедляют выполнение программы. В некоторых случаях лишние скобки даже желательны. Они поясняют порядок вычисления выражения как для вас, так и для тех, кто будет разбирать исходный код вашей программы. Какое из приведенных ниже двух выражений воспринимается легче? х = y/3-34*temp+127 ; х = (у/3) - (34*temp) + 127; Упражнение для самопроверки по материалу главы 2

Почему в Java строго определены диапазоны допустимых значений и области действия простых типов?

Что собой представляет символьный тип в Java и чем он отличается от символьного типа в ряде других языков программирования?

Переменная типа boolean может иметь любое значение, поскольку любое ненулевое значение интерпретируется как истинное. Верно или неверно?

Допустим, результат выполнения программы выглядит следующим образом: One Two Three Напишите строку кода с вызовом метода println , где этот результат выводится в одной символьной строке.

Какая ошибка допущена в следующем фрагменте кода:for(i = 0; i < 10; i++) { int sum; sum = sum + i; } System.out.println("Sum is: " + sum);

Поясните отличие между префиксной и постфиксной формами оператора инкремента.

Покажите, каким образом укороченный логический оператор И может предотвратить деление на нуль.

К какому типу продвигаются типы byte и short при вычислении выражения?

Когда возникает потребность в явном приведении типов?

Напишите программу, которая находила бы простые числа в пределах от 2 до 100.

Оказывают ли лишние скобки влияние на эффективность выполнения программ?

Определяет ли кодовый блок область действия переменных?

Глава 3 Управляющие операторы

Основные навыки и понятия

Ввод символов с клавиатуры

Полная форма условного оператора if

Применение оператора switch

Полная форма цикла for

Применение цикла while

Применение цикла do-while

Применение оператора break для выхода из цикла

Использование оператора break в качестве оператора goto

Применение

оператора continue

Вложенные циклы

В этой главе вы ознакомитесь с операторами, управляющими ходом выполнения программы. Существуют три категории управляющих операторов: операторы выбора,к числу которых относятся операторы if и switch, итерационные операторы, в том числе операторы цикла for, while, do-while, а также операторы перехода, включая break, continue и return. Все эти управляющие операторы, кроме оператора return, обсуждаемого далее в книге, подробно рассматриваются в этой главе, в начале которой будет показано, каким образом организуется простой ввод данных с клавиатуры. Ввод символов с клавиатуры

Прежде чем приступать к рассмотрению управляющих операторов в Java, уделим немного внимания средствам, которые позволяют писать интерактивные программы. В рассмотренных до сих пор примерах программ данные выводились на экран, но у пользователя не было возможности вводить данные. В этих программах, в частности, применялся консольный вывод, но не консольный ввод (с клавиатуры). И объясняется это тем, что возможности ввода данных с клавиатуры в Java опираются на языковые средства, рассматриваемые далее в этой книге. Кроме того, большинство реальных программ на Java и апплетов имеют графический и оконный, а не консольный интерфейс. Именно по этим причинам консольный ввод нечасто применяется в примерах программ, представленных в данной книге. Но имеется один вид консольного ввода, который реализуется очень просто. Это чтение символов с клавиатуры. А поскольку ввод символов применяется в ряде примеров, представленных в этой главе, мы и начнем ее с обсуждения данного вопроса.

Для чтения символа с клавиатуры достаточно вызвать метод System.in.read , где System.in — объект ввода (с клавиатуры), дополняющий объект вывода System, out. Метод read ожидает нажатия пользователем клавиш, после чего возвращает результат. Возвращаемый им символ представлен целочисленным значением, и поэтому, прежде чем присвоить его символьной переменной, следует выполнить явное его приведение к типу char. По умолчанию данные, вводимые с консоли, буферизуются построчно. Под термином буфер здесь подразумевается небольшая область памяти, выделяемая для хранения символов перед тем, как они будут прочитаны программой. В данном случае в буфере хранится целая текстовая строка, и поэтому для передачи программе любого введенного с клавиатуры символа следует нажать клавишу . Ниже приведен пример программы, читающей символы, вводимые с клавиатуры. // Чтение символа с клавиатуры, class KbIn { public static void main(String args[]) throws java.io.IOException { char ch; System.out.print("Press a key followed by ENTER: "); // Ввод символа с клавиатуры. ch = (char) System.in.read; // получить значение типа char System.out.println("Your key is: " + ch); } }

Выполнение этой программы может дать, например, следующий результат: Press a key followed by ENTER: t Your key is: t

Обратите внимание на то, что метод main начинается со следующих строк кода: public static void main(String args[]) throws java.io.IOException {

В рассматриваемой здесь программе применяется метод System, in. read , и поэтому в ее код следует ввести оператор throws j ava. io. IOException. Этот оператор требуется для обработки ошибок, которые могут возникнуть в процессе ввода данных. Он является частью механизма обработки исключений в Java, более подробно рассматриваемого в главе 9. А до тех пор не обращайте особого внимания на этот оператор, принимая во внимание лишь его назначение.

Поделиться:
Популярные книги

Возвышение Меркурия. Книга 13

Кронос Александр
13. Меркурий
Фантастика:
попаданцы
аниме
5.00
рейтинг книги
Возвышение Меркурия. Книга 13

Сирота

Ланцов Михаил Алексеевич
1. Помещик
Фантастика:
альтернативная история
5.71
рейтинг книги
Сирота

Идеальный мир для Лекаря 25

Сапфир Олег
25. Лекарь
Фантастика:
фэнтези
юмористическое фэнтези
аниме
5.00
рейтинг книги
Идеальный мир для Лекаря 25

Хроники Сиалы. Трилогия

Пехов Алексей Юрьевич
Хроники Сиалы
Фантастика:
фэнтези
9.03
рейтинг книги
Хроники Сиалы. Трилогия

Повелитель механического легиона. Том I

Лисицин Евгений
1. Повелитель механического легиона
Фантастика:
фэнтези
попаданцы
аниме
5.00
рейтинг книги
Повелитель механического легиона. Том I

Жена моего брата

Рам Янка
1. Черкасовы-Ольховские
Любовные романы:
современные любовные романы
6.25
рейтинг книги
Жена моего брата

Темный Лекарь

Токсик Саша
1. Темный Лекарь
Фантастика:
фэнтези
аниме
5.00
рейтинг книги
Темный Лекарь

Седьмая жена короля

Шёпот Светлана
Любовные романы:
любовно-фантастические романы
5.00
рейтинг книги
Седьмая жена короля

Real-Rpg. Еретик

Жгулёв Пётр Николаевич
2. Real-Rpg
Фантастика:
фэнтези
8.19
рейтинг книги
Real-Rpg. Еретик

Измена

Рей Полина
Любовные романы:
современные любовные романы
5.38
рейтинг книги
Измена

Кротовский, побойтесь бога

Парсиев Дмитрий
6. РОС: Изнанка Империи
Фантастика:
попаданцы
альтернативная история
аниме
5.00
рейтинг книги
Кротовский, побойтесь бога

Пограничная река. (Тетралогия)

Каменистый Артем
Пограничная река
Фантастика:
фэнтези
боевая фантастика
9.13
рейтинг книги
Пограничная река. (Тетралогия)

Книга 5. Империя на марше

Тамбовский Сергей
5. Империя у края
Фантастика:
альтернативная история
5.00
рейтинг книги
Книга 5. Империя на марше

Как я строил магическую империю 4

Зубов Константин
4. Как я строил магическую империю
Фантастика:
боевая фантастика
постапокалипсис
аниме
фантастика: прочее
фэнтези
5.00
рейтинг книги
Как я строил магическую империю 4