Программирование на языке 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

Работы в архивах красиво оформлены согласно требованиям ВУЗов и содержат рисунки, диаграммы, формулы и т.д.
PPT, PPTX и PDF-файлы представлены только в архивах.
Рекомендуем скачать работу.