Циклы в языке Java имеется три основных конструкции управления циклами

Циклы
В языке Java имеется три основных конструкции управления циклами:
цикл while
цикл do
цикл for
Цикл while
While (логическое выражение)
<повторяющееся выражение,
или блок>;

Цикл while
<оператор1>;
While (логич.выражение)
<оператор2>;
<оператор3>;

Цикл while

Цикл while
Операторы continue и break могут изменять нормальное исполнение тела цикла.
если в теле цикла встретился оператор continue, то операторы, следующие за ним, будут пропущены и выполнение цикла продолжится.
Если continue используется с меткой и метка принадлежит к данному while, то выполнение его будет аналогичным.

Цикл while
Если метка не относится к данному while, его выполнение будет прекращено и управление будет передано на оператор, или блок, к которому относится метка.
Если встретился оператор break, то выполнение цикла будет прекращено

Цикл while
public class Test {
public static void main(String[] args){
int x = 0;
while (x < 5) {
x++;
if (x % 2 == 0) continue;
System.out.print(" " + x);
}
}
}
// вывод: 1 3 5

Цикл while
public class Test {
public static void main(String[] args) {
int x = 0;
int y = 0;
lbl: while (y < 3) {
y++;

Цикл while
while (x < 5) {
x++;
if (x % 2 == 0)
continue lbl;
System.out.println("x=" + x + "
y="+y);
} // конец внутрен. цикла
} // конец внешнего цикла
}
}

Цикл while
x=1 y=1
x=3 y=2
x=5 y=3

Цикл do
do
<повторяющееся выражение или блок;>
while (логическое выражение)
Цикл do будет выполняться до тех пор, пока логическое выражение будет истинным.
В отличие от цикла while, этот цикл будет выполнен, как минимум, один раз.

Цикл do
do
<оператор-1>;
<оператор-2>;
…
<оператор-n>;
while (логическое выражение);

Цикл do

Цикл do
int counter = 0;
do {
counter ++;
System.out.println("Counter is " +
counter);
} while (counter > 5);

Цикл do
class DoWhile {
public static void main(String args[])
{
int n = 10;
do {
System.out.println("tick " + n);
} while (--n > 0);
}
}

Цикл for
Довольно часто бывает необходимо изменять значение какой-либо переменной в заданном диапазоне и выполнять повторяющуюся последовательность операторов с использованием этой переменной.
for ( <инициализация>; <завершение>; <итерация>)
<оператор или блок>;


Цикл for
Example
class ForDemo {
public static void main(String args[])
{
for (int i = 1; i <= 10; i++) System.out.println("i = " + i);
}
}

Цикл for
Example
class ForTick {
public static void main(String args[]) {
for (int n = 10; n > 0; n--) System.out.println("tick " + n);
}
}

Цикл for
Example
... for(counter=0;counter<10;counter++)
{
System.out.println("Counter is " +
counter);
} /* Цикл будет выполнен 10 раз и будут напечатаны значения счетчика от 0 до 9; переменная counter была объявлена ранее. */

Цикл for
Example
... for(int cnt = 0;cnt < 10; cnt++)
{
System.out.println("Counter is " +
cnt);
} /* область видимости переменной cnt будет ограничена телом цикла */

Цикл for
Example
Любая часть конструкции for() может быть опущена.
В вырожденном случае мы получим оператор for с пустыми значениями
for(;;) { ... }

Цикл for
…
int a, b;
for (a = 1, b = 4; a < b; a++, b--)
{ System.out.println("a = " + a);
System.out.println("b = " + b);
}

Цикл for
Результат
а = 1
b = 4
а = 2
b = 3

Цикл for
Пример 1 с continue
class ContinueDemo {
public static void main(String args[]) {
for (int i=0; i < 10; i++)
{ System.out.print(i + " ");
if (i % 2 == 0) continue;
System.out.println("");
}
}
}

Цикл for
0 1
2 3
4 5
6 7
8 9

Цикл for
Пример 2 с continue
…
outer: for (int i=0; i < 10; i++)
{ for (int j = 0; j< 10; j++)
{ if (j > i)
{System.out.println("");
continue outer;
}
System.out.print(" " + (i * j));
}
…

Цикл for
0
0 1
0 2 4
0 3 6 9
0 4 8 12 16
0 5 10 15 20 25
0 6 12 18 24 30 36
0 7 14 21 28 35 42 49
0 8 16 24 32 40 48 56 64
0 9 18 27 36 45 54 63 72 81

Цикл for
Пример 3. Вычислить факториал n!

Массивы
Массив в Java это объект.
Этот объект состоит из размера массива (поле length) и собственно массива.
Описание: <тип-массива> <имя> [ ];
int intAry[]; //память не выдел.
int[] intAry;
Это описание переменной (или поля) intAry — ссылки на массив.

Массивы
Объект массив должен быть создан операцией new
intAry = new int[10];
// Создает массив из 10 целых и адрес этого массива заносит в intAry
// intAry –ссылка на массив
int[] intAry = new int[10]; //допустимо
int intAry[] = {1, 2, 3, 4};//без new

Массивы
int a[]=new int[5];
Point[] p = new Point[10];
int array[]=new int[5];
for (int i=0; i<5; i++)
{ array[i]=i*i; };
for (int j=0; j<6; j++)
{ System.out.println(j+"*"+j+"=“
+array[j]);
}

Массивы
Результатом выполнения программы будет:
0*0=0
1*1=1
2*2=4
3*3=9
4*4=16
RuntimeError

Массивы
Одна переменная может ссылаться на массивы разной длины:
int i[]=new int[5];
...
i= new int[7]; // переменная та же,
// длина массива другая

Массивы
//поле length
int p[]= new int [5];
…
for (int i=0; i
{System.out.pritnln(p[i]); }

Многомерные массивы
Они строятся по принципу "массив массивов".
Массив является объектом.
Двумерный массив — это массив ссылок на объекты-массивы.
Трехмерный массив — это массив ссылок на массивы, которые, в свою очередь, являются массивами ссылок на массивы.

Многомерные массивы
Пример: создать массив целых 3*3.
Вариант 1. (явное создание)
int ary[][] = new int [3][3];
Вариант 2. (использование списка инициализации)
int ary[][] = new int [][] {
{1, 1, 1},
{2, 2, 2},
{1, 2, 3},
};

Многомерные массивы
Можно создать “рваный” , “непрямоугольный” многомерный массив, потому, что многомерный массив является массивом ссылок на массивы.
Т.е. каждый массив следующего уровня является самостоятельным массивом и может иметь свой размер

Многомерные массивы
int ary[][] = new int [][] {
{1, 1, 1, 1},
{2, 2, 2},
{1, 2, 3, 4, 5},
};
int ary[][] = new int [3][];
ary[0] = new int [5];
ary[1] = new int [2];
ary[2] = new int [6];

Многомерные массивы
Присваивание и копирование
int ary[][] = new int[][] {
{1, 1, 1, 1},
{2, 2, 2},
{1, 2, 3, 4, 5},
};
int copyAry[][] = ary; //массив тот же
copyAry — это не ссылка на копию массива, а еще одна ссылка на тот же массив

Многомерные массивы
// создание и заполнение случайными значениями
int m=10;
int n= 20;
int[][] a;
a = new int[n][m];
for (int i = 0; i < n; i++)
for (int j = 0; j < m; j++)
a[i][j] = (int) (Math.random() * 5);

Многомерные массивы
Заполнение и вывод элементов
int pithagor_table[][]=new int[5][5];
for (int i=0; i<5; i++) {
for (int j=0; j<5; j++)
{ pithagor_table[i][j]=i*j; System.out.print(pithagor_table[i][j] + "\t");
}
System.out.println();
}

Многомерные массивы
Вывод
0 0 0 0 0
0 1 2 3 4
0 2 4 6 8
0 3 6 9 12
0 4 8 12 16

Многомерные массивы
Вывод матрицы:
float [][] mat = new float[4] [4];
….
for (int i=0; i
for (int j=0; j
System.out.print(mat [i][j]+ “ ”);
System.out.println( );
}

Массивы (резюме)
1. Массивы являются объектами специфической формы. В частности, любой массив имеет поле length, которое определяет его размер.
2. Массивы индексируются от 0.
3. Java жестко контролирует выход за границы массива (прерывание IndexOutOfBoundException).

Массивы (резюме)
4. Массив элементарного типа, например int, — это действительно массив значений (т.е. массив целых чисел). Массив объектов — это массив ссылок на объекты.
5. Существуют два способа создания массива — операцией new и явной инициализацией.
6. Для многомерных массивов существует возможность задания разного размера массивов второго, третьего и т.д. измерений

Массивы (примеры)
Определить среднюю температуру за неделю и какая температура выше и ниже средней

Массивы (примеры)
public class ArrayOfTempatures{
public static void main(String args[]) {
double[] temp = new double[7];
int index;
double sum, average;
System.out.println("Введите " +
temp.length + " температур:") ;
sum = 0; //инициализация для суммир.

Массивы (примеры)
for (index = 0; index
index++){
temp[index] =ioo.readLineDouble();
sum = sum + temp[index];
}
average = sum/temp.length;
System.out.println( "Среднее значение температуры равно " + average);

Массивы (примеры)
System.out.println("Были введены
следующие значения температуры");
for (index = 0; index
; index++)
{
if (temp[index] < average) System.out.println( temp[index]
+ " ниже среднего.");

Массивы (примеры)
else
if (temp[index] > average) System.out.println(temp [index]
+ " выше среднего.");
else System.out.println(temp [index]
+ " равно среднему.");
}// конец цикла
System.out.println("Хорошей нам
погоды!");
}
}

страница 1
скачать
Другие похожие работы: