Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Краткий справочник по JAVA.docx
Скачиваний:
14
Добавлен:
11.03.2016
Размер:
1.08 Mб
Скачать
  1. Другие конструкции циклов

    1. Оператор break делает код более быстрым

Иногда цикл можно завершить досрочно. Например, при проверке наличия в списке наименований товаров, имеющихся на складе конкретного товара просмотр наименований списка можно прекратить, как только текущее наименование совпало с искомым.

Или при проверке является ли число N простым, мы последовательно делим его на целые значения параметра цикла i. Как только остаток от деления N/ i станет равным нулю, становится ясно, что N – не простое, а составное число и проверку (т.е. деление на следующие значения i можно прекратить. Для досрочного выхода из цикла в Java имеется оператор break.

Пример.

int i;

for (i = 2; i < N; i++)

if (N % i == 0) break;

if (i = N) System.out.println(N + " простое число");

    1. Оператор continue делает код более быстрым

Когда в теле цикла for исполняется оператор continue, то управление сразу передается оператору инкрементации параметра цикла (т.е. пропускаются имеющиеся после continue операторы тела цикла)

    1. Бесконечный цикл

For ( ; ; )

    1. Цикл для обхода всех элементов массива или коллекции

В следующей программе используется расширенный for для прохода по всем элементам массива:

class EnhancedForDemo {

public static void main(String[] args){

int[] numbers =

{1,2,3,4,5,6,7,8,9,10};

for (int item : numbers) {

System.out.println("Count is: " + item);

}

}

}

Здесь переменная item принимает значение текущего элемента массива.

    1. Цикл do-while

Спецификация цикла do – while:

do

{ <statements> }

while (<boolean expression>);

Этот цикл отличается от цикла while тем, что при первом входе в тело цикла НЕ проверяется значение булевского выражения.

Пример. С помощью метода random() получить случайную точку внутри единичного круга на координатной плоскости.

do

{ // Scale x and y to be random in (-1, 1).

x = 2.0*Math.random() - 1.0;

y = 2.0*Math.random() - 1.0;

} while (Math.sqrt(x*x + y*y) > 1.0);

ЛР10 Выдача РГР. Запись в файл. чтение из файла

Пример класса FileWorker, содержащего методы записи текста в файл и чтения текста из файла

import java.io.*;

public class FileWorker {

public static void writeToFile(String fileName, String text,boolean addToFile) {

// при addToFile=true text заменяет содержимое файла, иначе - добавляется

//Определяем целевой файл

File file = new File(fileName);

try {

//проверяем, что если файл не существует то создаем его

if(!file.exists()){

file.createNewFile();

}

//FileWriter обеспечит возможности записи в файл

FileWriter fr = new FileWriter(file.getAbsolutePath(),addToFile);

try {

//Записываем text в файл

fr.write(text);

} finally {

//После чего мы должны закрыть файл

//Иначе файл не запишется

fr.close();

}

} catch(IOException e) {

throw new RuntimeException(e);

}

}

public static String readFromFile(String flname) {

//метод чтения из файла с именем flname

String s, text="";

FileReader flread;

try {

flread = new FileReader(flname);

BufferedReader br = new BufferedReader(flread);

// readLine считывает из файла по одной строке s за раз

while((s = br.readLine()) != null) {

text=text + " " + s;

}

flread.close();

}

catch ( FileNotFoundException fe ) {

System.out.println("Файл не найден");

}

catch(IOException e) {

throw new RuntimeException(e);

}

return text;

}

}