- •В.А. Лучников программирование на языке java
- •Содержание
- •Предисловие
- •Алфавит языка
- •Ключевые слова
- •Типы данных
- •Литералы (константы)
- •Комментарии
- •Переменные
- •Математические функции
- •Выражения
- •Выражения целого типа
- •Примеры записи выражений целого типа:
- •Примеры вычислений выражений целого типа:
- •Выражения действительного типа
- •Примеры записи выражений действительного типа
- •Примеры вычислений выражений действительного типа:
- •Выражения логического типа
- •Операторы присваивания
- •Variable имяПеременной might not have been initialized
- •Примеры записи операторов присваивания:
- •Ввод и вывод данных
- •Ввод и вывод с помощью диалоговых окон
- •Import javax.Swing.*;
- •Консольный вывод
- •Консольный ввод с помощью класса Scanner
- •Import java.Util.*; //импорт пакета
- •Структура программы
- •Import javax.Swing.*;
- •Import java.Util.*;
- •Алгоритм и его свойства
- •Схемы алгоритмов
- •Пример записи алгоритма:
- •Базовые структуры
- •Цепочка
- •Ветвления
- •Альтернатива
- •If (условие)
- •Вариант 2 – с использованием операции конъюнкции
- •Import javax.Swing.*;
- •Int c, y1, y2, kl, day, month, year;
- •Часто встречающиеся ошибки программирования:
- •Import javax.Swing.*;
- •Переключатель
- •Int month;
- •Часто встречающиеся ошибки программирования:
- •Бесконечные циклы
- •Циклы с предусловием
- •Программа
- •Программа
- •Часто встречающиеся ошибки программирования:
- •Циклы с постусловием
- •Программа
- •Int month;
- •Циклы с параметром
- •Действия цикла:
- •Операторы прерывания break, continue, return, System.Exit
- •Структуры данных
- •Массивы
- •Import javax.Swing.*;
- •Import java.Util.*;
- •Int n, m, matrMin, matrMax;
- •Import javax.Swing.*;
- •Import java.Util.*;
- •Int n, vectorMin, vectorMax, temp;
- •VectorMin, vectorMax, n);
- •Import javax.Swing.*;
- •Import java.Util.*;
- •Int n, vectorMin, vectorMax, temp;
- •VectorMin, vectorMax, n);
- •Методы для работы с массивами
- •Класс String
- •Методы для работы со строками класса String
- •Класс StringBuffer
- •Методы для работы со строками класса StringBuffer
- •Import java.Io.*;
- •Import javax.Swing.*;
- •Import java.Io.*;
- •Import javax.Swing.*;
- •Обработка исключительных ситуаций
- •If (переменная name вышла за диапазон)
- •Import java.Io.*;
- •Import javax.Swing.*;
- •Import java.Io.*;
- •Import javax.Swing.*;
Переключатель
Часто приходится делать выбор не между двумя, а между несколькимипутями решения задачи. Такую ситуацию называютпереключателем:
В языке Javaпереключатель реализуется операторомswitch (переключатель):
switch (селектор)
{
case метка-1: оператор-1;
break;
case метка-2: оператор-2;
break;
case метка-3: оператор-3;
break;
. . . . . . . . . . . . . . . . .
default: оператор-n;
}
где switch- служебное словопереключатель,
case- служебное слововариант,
селектор- переменная или выражениецелогоилисимвольноготипов (обязательно ставится в скобках);
метка-1, метка-2,…-метки вариантов– значения селектора –
целые числа, символы или имена констант,
break- служебное словопрервать,
default- служебное словопо умолчанию(не обязательно).
Действия оператора:
вычисляется значение селектора,
это значение отыскивается среди меток вариантов,
выполняется оператор, стоящий за найденной меткой,
если далее стоит оператор break, то осуществляется выход из переключателя, иначе выполняется следующий оператор в нем,
если метка не найдена, то выполняется оператор, стоящий за словом default.
В любой ветви оператора swithмогут стоять несколько меток вариантов, разделенныхдвоеточием:
switch (селектор)
{
case метка-1: case метка-2: case метка-3: оператор-1;
break;
case метка-4: case метка-5: оператор-2;
break;
case метка-6: оператор-3;
break;
. . . . . . . . . . . . . . . . .
default: оператор-n;
}
Эту структуру можно представить в следующем виде:
switch (селектор)
{
case метка-1:
case метка-2:
case метка-3: оператор-1;
break;
case метка-4:
case метка-5: оператор-2;
break;
case метка-6: оператор-3;
break;
. . . . . . . . . . . . . . . . .
default: оператор-n;
}
Внимание!Метки вариантов не должныповторяться!
Если в переключателеубрать операторыbreak, то после выполнения оператора, стоящего за найденной меткой вариантов, выполняютсявсеоставшиеся операторы, в том числе и оператор после словаdefault:
int i;
String input;
input=JOptionPane.showInputDialog("Введите цифру:");
// преобразование из строкового значения в целое
i=Integer.parseInt(input);
switch (i)
{
case 0: System.out.printf(“\nЭто цифра ноль”);
case 1: case 2: System.out.printf(“\nЭто цифра один или два”);
default: System.out.printf(“\nЭто неизвестная цифра”);
}
При вводе цифры 0на экран будут выведены сообщения:
Это цифра ноль
Это цифра один или два
Это неизвестная цифра
Для того, чтобы после выполнения нужной ветви оператора switchдругие операторы не выполнялись, каждая ветвь должна заканчиваться операторомbreak:
int i;
String input;
input=JOptionPane.showInputDialog("Введите цифру:");
// преобразование из строкового значения в целое
i=Integer.parseInt(input);
switch (i)
{
case 0: System.out.printf(“\nЭто цифра ноль”);
break;
case 1: case 2: System.out.printf(“\nЭто цифра один или два”);
break;
default: System.out.printf(“\nЭто неизвестная цифра”);
}
В этом случае после ввода цифры 0на экран будет выведено только одно сообщение:
Это цифра ноль
Если в каждой ветви switchстоит не по одному, а по нескольку операторов, то необходимо брать их в фигурные скобки:
switch (селектор)
{
case метка-1:
{
оператор;
оператор;
оператор;
break;
}
case метка-2:
{
оператор;
оператор;
break;
}
. . . . . . . . . . . . . . . . .
default:
{
оператор;
оператор;
}
}
Для улучшения читаемости программы необходимо использовать сдвигоператоров.
Можно использовать вложенные операторы switch, при этом в разных операторах могут быть одинаковые метки вариантов:
switch (n)
{
case 0: оператор;
break;
case 1: switch (m)
{
case 0: оператор;
break;
case 1: оператор;
break;
default: оператор;
}
case 3: оператор;
break;
. . . . . . . . . . . . . . . . .
default: оператор;
}
Пример: по заданному номеру месяца года определить количество дней в нем. В этом переключателе всеготриветви: