NetNado
  Найти на сайте:

Учащимся

Учителям



Циклы в языке 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


скачать

Другие похожие работы: