Программирование на языке Java
Характеристика алфавита языка Java, а также таких его компонентов как литералы, комментарии и переменные. Описание выражений целого, действительного и логического типов. Анализ специфики ввода и вывода данных. Характеристика базовых структур языка.
Рубрика | Программирование, компьютеры и кибернетика |
Вид | курс лекций |
Язык | русский |
Дата добавления | 15.09.2017 |
Размер файла | 930,1 K |
Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже
Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.
Компилятор обработает эту ошибку и выдаст сообщение:
Exception in thread "main" java.lang.RuntimeException: Uncompilable source code - incompatible types
required: boolean
found: double
at javaapplication1.JavaApplication1.main(JavaApplication1.java:25)
Здесь 25 - номер программной строки с ошибкой.
Часто встречающиеся ошибки программирования:
1. Использование else без первой ветви:
if (n > m)
else . . .
2. Использование открывающей фигурной скобки { без закрывающей } и наоборот.
3. Отсутствие точки с запятой перед словом else:
if (n > m)
a=1
else a=0;
4. Точка с запятой после условия:
if (n > m);
a=1;
else a=0;
Отсутствие точки с запятой перед закрывающей фигурной скобкой } или наличие точки с запятой после нее:
if (c < 2.5)
{
a=Math.sin(c);
b=Math.abs(c);
};
else
{
a=Math.cos(c);
b=1.0/c
}
Пример
Задан график функции f(x) - полуокружность радиуса R=1:
Определить:
Значение функции y при заданном значении аргумента x.
Площади фигур слева и справа от линии разреза.
По теореме Пифагора:
Площадь фигуры слева от линии разреза определяется суммой площадей прямоугольного треугольника:
s1 = 0,5 x y
и сектора:
s2 = 0,5 R2 (б - sin б), где б - центральный угол в радианах,
причем
б = arcsin(y/R).
Площадь всей фигуры (полукруга) определяется выражением:
S = р R2/2.
Программа решения задачи:
package javaapplication2;
// импорт библиотеки графических компонентов Swing
import javax.swing.*;
public class JavaApplication2 // описание главного класса
{
public static void main(String[] args)
{
// описание переменных:
double x, y, sLeft, sRight, alfa, sinAlfa, segment;
String input, text;
y=0.0;
sLeft=0.0;
sRight=0.0;
// вызов диалогового окна ввода исходных данных
input=JOptionPane.showInputDialog("Введите значение переменной x:");
// преобразование из строкового значения в вещественное
x=Double.parseDouble(input);
if (x<=1.0) //первый участок
{
y=Math.sqrt(1.0 - (x - 1.0 ) * (x - 1.0 ));
if (x<=0.0)
y=0.0;
}
else
{ //второй участок
y=Math.sqrt(1.0 - (x - Math.floor(x)) * (x - Math.floor(x)));
if (x>=2.0)
y=0.0;
}
if (x==1.0) //двойной знак равенства!
{
sLeft=0.7854;
sRight=0.7854;
}
if (x<1.0) //первый участок
{
sinAlfa=y;
if (sinAlfa!=1.0)
alfa=Math.atan(sinAlfa/Math.sqrt(1.0 - sinAlfa*sinAlfa));
else alfa=Math.PI/2.0;
segment=0.5*(alfa - sinAlfa);
sLeft=segment + 0.5*x*y;
sRight=Math.PI/2.0 - sLeft;
} //x<1.0
if (x>1.0) //второй участок
{
x=2.0-x;
sinAlfa=y;
if (sinAlfa!=1.0)
alfa=Math.atan(sinAlfa/Math.sqrt(1.0 - sinAlfa*sinAlfa));
else alfa=Math.PI/2.0;
segment=0.5*(alfa - sinAlfa);
sLeft=segment + 0.5*x*y;
sRight=Math.PI/2.0 - sLeft;
} //x>1.0
// формирование строки вывода
text="Результат работы программы:\ny=" + y + "\ns_left=" + sLeft + "\ns_right=" + sRight;
// вызов диалогового окна вывода
JOptionPane.showMessageDialog(null, text);
}
}
13.4 Переключатель
Часто приходится делать выбор не между двумя, а между несколькими путями решения задачи. Такую ситуацию называют переключателем:
Размещено на http://www.allbest.ru/
В языке Java переключатель реализуется оператором switch (переключатель): язык java литерал комментарий
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: оператор;
}
Пример: по заданному номеру месяца года определить количество дней в нем. В этом переключателе всего три ветви:
int month;
String input;
input=JOptionPane.showInputDialog("Введите номер месяца:");
// преобразование из строкового значения в целое
month=Integer.parseInt(input);
switch (month)
{
case 1: case 3: case 5:
case 7: case 8: case 10:
case 12: System.out.printf(“\n31 день”);
break;
case 4: case 6: case 9:
case 11: System.out.printf(“\n30 дней”);
break;
case 2: System.out.printf(“\n28 дней”);
break;
default: System.out.printf(“\nТакого месяца нет\n”);
}
Часто встречающиеся ошибки программирования:
Точка с запятой после скобок селектора:
switch (n);
{
case 0: оператор;
break;
. . . . . . . . . .
Отсутствие фигурных скобок после слова switch :
switch (n)
case 0: оператор;
break;
. . . . . . . . . .
Перечисление меток вариантов без слов case:
switch (n)
{
case 0, 1, 2: n++;
break;
. . . . . . . . . .
Перечисление меток вариантов через запятые:
switch (n)
{
case 0, case 1, case 2: n++;
break;
. . . . . . . . . .
Отсутствие оператора break после ветвей переключателя:
switch (n)
{
case 0: case 1: case 2: n++;
case 3: n--;
. . . . . . . . . .
13.5 Циклы
Одним из самых ценных свойств компьютеров является их способность многократно повторять последовательность одинаковых или похожих действий - циклов.
Являясь наиболее мощными структурами алгоритмических языков, циклы подразделяются на:
бесконечные циклы,
циклы с предусловием (циклы типа ПОКА),
циклы с постусловием (циклы типа ДО),
циклы с параметром (циклы типа ДЛЯ).
13.6 Бесконечные циклы
Бесконечный цикл может быть представлен следующей схемой:
Размещено на http://www.allbest.ru/
int i=0, n=5;
//следующие операторы образуют бесконечный цикл:
while (i<=n)
{
i++;
i--;
}
Как правило, появление в программе бесконечных циклов вызвано логическими ошибками, допущенными программистом при разработке алгоритма и кодировании (написании операторов программы). Бесконечные циклы не выявляются комилятором при синтаксическом контроле и проявляются только после запуска программы на выполнение следующим образом:
длительное время (десятки секунд) программа не выводит на устройство вывода никакой информации - программа зависает,
на устройство вывода постоянно выводится одна и та же информация.
Таким образом, бесконечные циклы - это логические ошибки программиста. С ними сталкивается любой программист, и поэтому необходимо овладеть методами их поиска.
Циклы с предусловием
Как правило, некоторую цепочку операторов необходимо повторять не бесконечно, а до тех пор, пока выполняется некоторое условие:
ПОКА (условие) ВЫПОЛНЯТЬ
цепочка;
Такой цикл называется циклом с предусловием (циклом ПОКА) и изображается следующей схемой:
Размещено на http://www.allbest.ru/
Условие - это логическое выражение, зависящее от переменных, входящих в цепочку. Цикл повторяется до тех пор, пока условие истинно. Значит, данное условие является условием продолжения цикла. Выполнение цикла заканчивается, если операторы цепочки изменяют значения переменных, входящих в условие, и оно становится ложным.
Цикл не выполняется ни разу, если условие было ложным с самого начала.
Цикл ПОКА превращается в бесконечный, если условие подобрано так, что оно всегда истинно.
В Java цикл с предусловием реализуется оператором цикла while:
while (условие)
оператор;
или
while (условие)
{
оператор;
оператор;
. . . .
оператор;
}
Операторы, находящиеся между фигурными скобками, называются телом цикла.
Внимание! Условие всегда заключается в скобки и после него точка с запятой не ставится!
Если поставить точку с запятой после условия, то этот цикл, как правило, превращается в бесконечный, потому что в этом случае условие изменяться не будет.
Фигурные скобки используются в том случае, если после условия должна следовать цепочка операторов.
Действия оператора while:
проверяется выполнение условия,
если оно истинно, то выполняется оператор (цепочка), стоящий после него,
после его выполнения снова проверяется условие, и если оно снова истинно, то цикл повторяется,
если условие становится ложным, то цикл заканчивает работу.
Примеры:
1. вычислить сумму ста первых натуральных чисел:
s = 1 + 2 + 3 + … + 98 + 99 + 100
Пусть s - искомая сумма,
i - очередное число (изменяется от 1 до 100).
Тогда алгоритм решения задачи можно описать следующим образом:
обнуляем сумму s = 0,
берем первое число: i = 1,
добавляем в сумму это число: s = s + i,
увеличиваем очередное число на единицу: i = i+ 1,
если оно не больше 100, то снова добавляем его в сумму и повторяем цикл.
Представим этот алгоритм так:
s = 0;
i = 1;
ПОКА (i ? 100)
НАЧАЛО
s = s + i;
i = i + 1;
КОНЕЦ;
Схема алгоритма:
Размещено на http://www.allbest.ru/
Программа:
int i=1, s=0;
while (i<=100)
{
s+=i;
i++;
}
System.out.printf(“/ns=%d i=%d”,s, i);
Результат решения задачи:
s=5050 i=101
Таким образом, выходим из этого цикла со значением i не 100, а 101.
Вместо цепочки:
s+=i;
i++;
можно использовать один оператор:
s+=i++;
Этот цикл можно превратить в бесконечный, если после условия поставить точку с запятой:
int i=1, s = 0;
while
{
s += i;
i++;
}
System.out.printf(“/ns=%d i=%d”,s, i);
Значение переменной i в этом случае меняться не будет - она останется равной единице, и поэтому условие (i<=100)всегда истинно.
2. вычислить сумму s всех цифр заданного натурального числа n
Пусть s - искомая сумма,
i - очередная цифра числа.
Тогда алгоритм решения задачи можно описать следующим образом:
обнуляем сумму s=0,
берем последнюю цифру числа, для чего определяем остаток от деления исходного числа на 10: i = n % 10,
добавляем в сумму найденную цифру: s = s + i,
уменьшаем число в 10 раз: n = n / 10,
повторяем цикл до тех пор, пока n > 0 - это и будет условием продолжения цикла.
Схема алгоритма:
Размещено на http://www.allbest.ru/
Программа
int i, n, s = 0;
String input;
input=JOptionPane.showInputDialog("Введите целое положительное число:");
n=Integer.parseInt(input);
while (n>0)
{
i = n % 10;
s+=i;
n /= 10;
}
System.out.printf(“/ns=%d”,s);
3. ввести с клавиатуры по одному последовательность целых чисел (конец последовательности - число 0). Определить их сумму, максимальное и минимальное число, количество введенных чисел и их среднее арифметическое.
Пусть s - искомая сумма,
min, max - минимальное и максимальное из введенных чисел,
count - количество введенных чисел,
sred - среднее арифметическое,
n - очередное число.
Тогда алгоритм решения задачи можно описать следующим образом:
обнуляем сумму s = 0,
вводим первое число n,
если оно не равно нулю, то
принимаем его значение за min и max
количество введенных чисел count = 1
увеличиваем сумму на введенное число s = s + n
входим в цикл ввода:
вводим очередное число n,
если оно не равно нулю, то
количество введенных чисел увеличиваем на 1: count = count+1
увеличиваем сумму на введенное число s = s + n
если оно меньше min, то min = n,
если оно больше max, то max = n,
повторяем цикл до тех пор, пока n # 0 - это и будет условием продолжения цикла.
Создадим интерфейс этой задачи - взаимодействие программы с пользователем, то есть что должно выводиться на экран:
Первое число: 3
Очередное число: 8
Очередное число: 1
Очередное число: -2
Очередное число: 0
Сумма = 10
Количество чисел = 4
min = -2
max = 8
Среднее арифметическое = 2.50
Схема алгоритма:
Размещено на http://www.allbest.ru/
Программа
int min, max, n, count = 0;
double sred, s = 0.0;
String input;
input=JOptionPane.showInputDialog("Введите первое число:");
n=Integer.parseInt(input);
if (n==0) //если введено число 0, то
return 0; //выход из программы с результатом 0
//иначе
min = n; // за минимум и максимум принимаем
max = n; //первое введенное число
count = 1; //введено одно число
s += n;
while (n!=0) // пока введенное число - не ноль
{ // выполнять цикл
input=JOptionPane.showInputDialog("Введите очередное число:");
n=Integer.parseInt(input);
if (n==0)
break; // если введен ноль - выход из цикла ввода
count++; // количество введенных чисел
s += n; // сумма введенных чисел
if (n > max) // определение максимального числа
max = n;
if (n < min) // определение минимального числа
min = n;
}
System.out.printf(“\nСумма = %4.2f”, s);
System.out.printf(“\nКоличество чисел = %d”, count);
System.out.printf(“\nmin = %d”, min);
System.out.printf(“\nmax = %d”, max);
sred = (double)s/count; // определение среднего арифм.
System.out.printf(“\n Среднее арифметическое = %6.2f”,sred);
Часто встречающиеся ошибки программирования:
1. Использование после условия точки с запятой, что, как правило, приводит к появлению бесконечного цикла:
int i=1, s = 0;
while (i<=100);
{
s += i;
i++;
}
2. Условие не заключено в скобки:
int i=1, s = 0;
while i<=100
{
s += i;
i++;
}
3. Отсутствие фигурных скобок, в которые заключается тело цикла:
int i=1, s = 0;
while (i<=100)
s += i;
i++;
Это может привести к появлению бесконечных циклов.
4.Отсутствие в теле цикла оператора, изменяющего условие:
int i=1, s = 0;
while (i<=100)
{
s += i;
}
Это тоже приводит к появлению бесконечных циклов.
13.7 Циклы с постусловием
У циклов с постусловием (циклов типа ДО) проверка условия продолжения цикла производится после выполнения операторов, составляющих тело цикла:
ВЫПОЛНЯТЬ
цепочка
ДО (условие);
Размещено на http://www.allbest.ru/
Такой цикл повторяется до тех пор, пока условие истинно. Выполнение цикла заканчивается, если операторы цепочки изменяют значения переменных, входящих в условие, и оно становится ложным.
В любом случае этот цикл выполняется хотя бы один раз. Цикл с постусловием превращается в бесконечный, если условие подобрано так, что оно всегда истинно.
Таким образом, условие в данном цикле является условием его продолжения, как и в цикле с предусловием.
В Java цикл с постусловием реализован оператором цикла do:
do
{
оператор;
оператор;
оператор;
. . . . . .
оператор;
}
while (условие);
где do - служебное слово выполнять,
while - служебное слово пока.
Внимание! После слова do точка с запятой не ставится!
Перед закрывающей фигурной скобкой } поставить точку с запятой!
Действия оператора do:
выполняется оператор (цепочка),
проверяется выполнение условия, стоящего после слова while,
если оно истинно, то цикл повторяется,
если условие становится ложным, то цикл заканчивает работу.
Примеры:
вычислить сумму ста первых натуральных чисел:
s = 1 + 2 + 3 + … + 98 + 99 + 100
Пусть s - искомая сумма,
i - очередное число (изменяется от 1 до 100).
Тогда алгоритм решения задачи можно описать следующим образом:
обнуляем сумму s = 0 ,
берем первое число: i = 1,
добавляем в сумму очередное число s = s + i,
как только очередное число станет больше ста, цикл заканчивает работу.
Представим этот алгоритм так:
s = 0;
i = 1;
ВЫПОЛНЯТЬ
s = s + i;
i = i + 1;
ПОКА (i <= 100);
Размещено на http://www.allbest.ru/
Программа:
int i=1, s=0;
do
{
s+=i;
i++;
}
while (i <= 100);
System.out.printf(“/ns=%d i=%d”,s, i);
Результат решения задачи:
s=5050 i=101
Второй вариант решения задачи:
do
s+=i++;
while (i <= 100);
вычислить сумму s всех цифр заданного натурального числа n
Пусть s - искомая сумма,
i - очередная цифра числа.
Тогда алгоритм решения задачи можно описать следующим образом:
обнуляем сумму s = 0 ,
берем последнюю цифру числа, для чего определяем остаток от деления исходного числа на 10: i = n % 10,
добавляем в сумму найденную цифру: s = s + i,
уменьшаем число в 10 раз: n = n / 10,
повторяем цикл до тех пор, пока n != 0 .
Схема алгоритма:
Программа:
int i, n, s = 0;
String input;
input=JOptionPane.showInputDialog("Введите целое положительное число:");
n=Integer.parseInt(input);
do
{
i = n % 10;
s+=i;
n /= 10;
}
while (n != 0);
System.out.printf(“/ns=%d”,s);
ввести с клавиатуры по одному последовательность целых чисел (конец последовательности - число 0). Определить их сумму, максимальное и минимальное число, количество введенных чисел и их среднее арифметическое.
Пусть s - искомая сумма,
min, max - минимальное и максимальное из введенных чисел,
count - количество введенных чисел,
sred - среднее арифметическое,
n - очередное число.
Тогда алгоритм решения задачи можно описать следующим образом:
обнуляем сумму s = 0,
вводим первое число n,
если оно не равно нулю, то
· принимаем его значение за min и max
· количество введенных чисел count = 1
· увеличиваем сумму на введенное число s = s + n
· входим в цикл ввода:
вводим очередное число n,
если оно не равно нулю, то
· количество введенных чисел увеличиваем на 1: count = count+1
· увеличиваем сумму на введенное число s = s + n
· если оно меньше min, то min = n,
· если оно больше max, то max = n,
повторяем цикл до тех пор, пока n # 0 - это и будет условием продолжения цикла.
Создадим интерфейс этой задачи - взаимодействие программы с пользователем, то есть что должно выводиться на экран:
Первое число: 3
Очередное число: 8
Очередное число: 1
Очередное число: -2
Очередное число: 0
Сумма = 10
Количество чисел = 4
min = -2
max = 8
Среднее арифметическое = 2.50
Программа
int min, max, n, count = 0;
double sred, s = 0.0;
String input;
input=JOptionPane.showInputDialog("Введите первое число:");
n=Integer.parseInt(input);
if (n==0) //если введено число 0, то
return 0; //выход из программы с результатом 0
//иначе
min = n; // за минимум и максимум принимаем
max = n; //первое введенное число
count = 1; //введено одно число
s += n; // в сумме - введенное число
do (n!=0)
{
input=JOptionPane.showInputDialog("Введите очередное число:");
n=Integer.parseInt(input);
if (n==0)
break;
count++;
s += n;
if (n > max)
max = n;
if (n < min)
min = n;
} while(n!=0);
System.out.printf(“\nСумма = %4.2f”, s);
System.out.printf(“\nКоличество чисел = %d”, count);
System.out.printf(“\nmin = %d”, min);
System.out.printf(“\nmax = %d”, max);
sred = (double)s/count;
System.out.printf(“\n Среднее арифметическое = %6.2f”,sred);
Размещено на http://www.allbest.ru/
Схема алгоритма:
вычислить s - сумму членов бесконечного ряда:
s = 1 + x/ 1! + x2 / 2! + x3 / 3! + … + xk / k! + …
с погрешностью е0.
Каждый последующий член ряда можно определить через предыдущий, используя рекуррентную формулу:
yk+1 = yk·x / k
Текущая погрешность вычислений е определяется последним просуммированным членом ряда:
е =|yn|
Эту погрешность необходимо сравнить с заданной погрешностью е0 для реализации условия окончания суммирования:
- если е > е0 , то заданная точность еще не достигнута, и суммирование ряда необходимо продолжить, прибавив к имеющейся сумме еще один член,
- если е <= е0 , то заданная точность достигнута, и суммирование необходимо прекратить.
Пусть s - искомая сумма,
y - очередной член ряда,
k - номер члена ряда,
eps_0 - заданная точность вычислений,
x - вводимый аргумент.
Программа:
Public final double EPS_0 = 0.001;
int k = 0;
double x, y, s;
String input;
input=JOptionPane.showInputDialog("x=");
x=Double.parseDouble(input);
y = 1.0; // первый член ряда
s = y; // в сумме - он же
do
{
k++; // номер члена ряда увеличиваем на единицу
y *= x / k; // очередной член ряда
s += y; // добавляем его в сумму
}
while (Math.abs(y)>EPS_0);
System.out.printf(“\nСумма = %5.3f”, s);
Схема алгоритма:
Циклы с постусловием обычно используются в фильтрах входных данных - исходные данные вводятся до тех пор, пока они не будут корректными, а некорректные исходные данные отвергаются.
Пример: по введенному месяцу года определить количество дней в нем.
Схема фильтра (month - номер месяца)
Программа:
int month;
String input;
do
{
input=JOptionPane.showInputDialog("Введите номер месяца:");
month=Integer.parseInt(input);
} while ((month < 1) || (month > 12));
switch (month)
{
case 1: case 3: case 5:
case 7: case 8: case 10:
case 12: System.out.printf(“\n31 день”);
break;
case 4: case 6: case 9:
case 11: System.out.printf(“\n30 дней”);
break;
case 2: System.out.printf(“\n28 дней”);
break;
default: System.out.printf(“\nТакого месяца нет\n”);
}
Циклы с пред- и постусловиями используются тогда, когда заранее неизвестно количество их повторений (итераций). Во всех остальных случаях используются циклы с параметром.
13.8 Циклы с параметром
Управление работой циклов с параметром осуществляется не только условием, но и значением специальной переменной - параметра цикла (счетчика).
Циклы этого типа получили наиболее широкое распространение в алгоритмических языках.
Схему цикла с параметром можно представить в следующем виде:
Размещено на http://www.allbest.ru/
где x - параметр цикла - любая переменная,
x_нач - его начальное значение,
x_кон - его конечное значение,
x_шаг - шаг его изменения (не только целое число).
В Java циклы с параметром реализуются оператором цикла:
for (инициализация; условие; изменение)
{
оператор;
оператор;
оператор;
. . .
оператор;
}
где инициализация - устанавливает начальное значение параметра цикла,
условие - определяет условие выполнения цикла,
изменение - задает изменение параметра цикла после каждой итерации.
Действия цикла:
параметру цикла x присваивается его начальное значение x_нач,
проверяется условие выполнения цикла: если оно истинно, то выполняется тело цикла,
параметр цикла автоматически увеличивается на шаг, и цикл повторяется до тех пор, пока условие не становится ложным ,
если условие не выполняется, то цикл заканчивает работу,
из цикла можно выйти досрочно, используя оператор break.
Внимание! Все три составляющие в круглых скобках разделяются точками с запятой. После круглых скобок точка с запятой не ставится.
Пример: определить сумму s натуральных чисел от 1 до 100.
Схема алгоритма:
Подобные документы
История создания языка Java. Основные принципы объектно-ориентированного программирования. Структура, особенности синтаксиса и примеры прикладных возможностей использования языка Java, его преимущества. Перспективы работы программистом на языке Java.
курсовая работа [795,9 K], добавлен 14.12.2012Понятие и общая характеристика языка программирования РНР, принципы и этапы его работы, синтаксис и ассоциируемые массивы. Обработка исключений в языке Java. Работа с базами данных с помощью JDBC. Изучение порядка разработки графического интерфейса.
презентация [192,3 K], добавлен 13.06.2014Программирование ввода-вывода на основе потоков в Java. Классы для работы с потоками символов. Характеристика базовых классов. Пример чтения сетевого ресурса. Коллекции как расширение возможностей массивов. Работа с ассоциативными массивами HashMap.
лекция [630,1 K], добавлен 01.05.2014Создание языка программирования с помощью приложения "Java". История названия и эмблемы Java. Обзор многообразия современных текстовых редакторов. Обработка строки. Методы в классе String. Java: задачи по обработке текста. Примеры программирования.
курсовая работа [276,1 K], добавлен 19.07.2014Кратка историческая справка развития языка Java. Анализ предметной области. Java platform, enterprise and standart edition. Апплеты, сервлеты, gui-приложения. Розработка программного кода, консольное приложение. Результаты работы апплета, сервлета.
курсовая работа [549,2 K], добавлен 23.12.2015Язык Java как простой, обьектно-ориентированный, многопоточный язык программирования, разработанный компанией Sun Microsystems для расширения возможностей сети Internet. Типы данных, лексика и управляющие структуры данного языка программирования.
презентация [46,1 K], добавлен 25.04.2014История развития языка программирования Java. История тетриса - культовой компьютерной игры, изобретённой в СССР. Правила проведения игры, особенности начисления очков. Создание интерфейса программы, ее реализация в среде Java, кодирование, тестирование.
курсовая работа [168,1 K], добавлен 27.09.2013Архитектура Java и Java RMI, их основные свойства, базовая система и элементы. Безопасность и виртуальная Java-машина. Интерфейс Java API. Пример использования приложения RMI. Работа с программой "Calculator". Универсальность, портативность платформ.
курсовая работа [208,6 K], добавлен 03.12.2013Описание и установка интегрированной среды разработки Eclipse. Описание языка Java. Описание классов и методов, пакетов, использованных в программе, сервера и клиента. Разработка руководства пользователя для клиента и сервера. Пример работы чата.
курсовая работа [443,5 K], добавлен 18.05.2015Динамическая инициализация объектов в Java с помощью зарезервированного слова new. Порядок вызовов при создании объекта. Порядок выполнения операторов при наличии блоков инициализации. Чтение и запись файлов в программе, иерархия классов ввода/вывода.
контрольная работа [120,6 K], добавлен 07.06.2011