Содержание
- 2. Операторы управления выполнением программы Оператор return Ключевое слово return используется в методах для указания того, какое
- 3. Операторы управления выполнением программы Операторы цикла Оператор while – (с предусловием) while(Логическое выражение) { операторы }
- 4. Операторы управления выполнением программы Операторы цикла Оператор do-while – (с постусловием) do { операторы } while(Логическое
- 5. Операторы управления выполнением программы Операторы цикла Оператор for – (со счетчиком) for(инициализация счетчика; условие завершения; шаг
- 6. Операторы управления выполнением программы Операторы break и continue - Управление выполнением циклов: break прерывает текущий цикл
- 7. Операторы управления выполнением программы Оператор switch-case switch(выражение) { case значение1: {группа операторов; break; } case значение2:
- 8. Операторы управления выполнением программы Пример: В случайном порядке создаются буквы и проверяются, являются ли они гласными
- 9. Операторы управления выполнением программы Оператор «запятая» Иногда возникают ситуации, когда разделы инициализации или итерации цикла for
- 10. Общая структура программы на языке Java Блок идентификации пакетов и подключения внешних библиотек классов (операторы package
- 11. Пример: Написать на Java программу, которая проверяет есть ли в массиве заданное число. // Primer011.java import
- 13. Скачать презентацию
Слайд 2Операторы управления выполнением программы
Оператор return
Ключевое слово return используется в методах для указания
Операторы управления выполнением программы
Оператор return
Ключевое слово return используется в методах для указания
Для методов, не возвращающих значений значащих типов (спецификатор void), оператор return без значения в общем случае необязателен, но может использоваться для указания места принудительного завершения метода.
public class IfElse2 {
static int test(int testval, int target) {
int result = 0;
if(testval > target) return +1;
else if(testval < target) return -1;
else return 0; // Совпадает
}
public static void main(String args[ ]) {
System.out.println(test(10, 5));
System.out.println(test(5, 10));
System.out.println(test(5, 5));
/* здесь можно было поставить return;
однако метод main завершится по выходу на границу
*/
}}
Слайд 3Операторы управления выполнением программы
Операторы цикла
Оператор while – (с предусловием)
while(Логическое выражение) {
операторы
}
Логическое
Операторы управления выполнением программы
Операторы цикла
Оператор while – (с предусловием)
while(Логическое выражение) {
операторы
}
Логическое
//: c03:WhileTest.java
public class WhileTest {
public static void main(String args[ ]) {
double r = Math.random();
while(r <= 0.77d) {
r = Math.random();
System.out.println(r);
}
}}
Здесь используется статический метод random( ) из библиотеки Math, который генерирует значения типа double в пределах от 0 до 1. (Это включает 0, но не включает 1.) Логическое выражение для while говорит, “продолжать выражение этого цикла, пока не встретится число 0.77 или больше”. Всякий раз запуск программы, будет давать разные списки чисел (возможно список будет пуст).
Слайд 4Операторы управления выполнением программы
Операторы цикла
Оператор do-while – (с постусловием)
do {
операторы
}
while(Логическое выражение);
Логическое
Операторы управления выполнением программы
Операторы цикла
Оператор do-while – (с постусловием)
do {
операторы
}
while(Логическое выражение);
Логическое
//: c04:DoWhileTest.java
public class DoWhileTest {
public static void main(String args[ ]) {
double r = Math.random();
do {
r = Math.random();
System.out.println(r);
}
while(r <= 0.77d);
}}
Оператор работает аналогично (список хотя бы из одного значения будет выведен всегда).
Слайд 5Операторы управления выполнением программы
Операторы цикла
Оператор for – (со счетчиком)
for(инициализация счетчика; условие завершения;
Операторы управления выполнением программы
Операторы цикла
Оператор for – (со счетчиком)
for(инициализация счетчика; условие завершения;
операторы
}
Цикл for выполняет инициализацию переменной любого целого типа (и типа char) перед первой итерацией. Затем он проверяет условие завершения, а в конце каждой итерации выполняется “шаг” переменной цикла. Выражение проверяется перед каждой итерацией, и как только при вычислении получится false, выполнение продолжится со строки, следующей за инструкцией for. В конце каждого цикла выполняется шаг.
//: c03:ListCharacters.java
// Демонстрация цикла "for" для составления списка всех ASCII символов.
public class ListCharacters {
public static void main(String args[ ]) {
for(char c = 0; c < 128; c++) {
if (c != 26 ) // ANSI Очистка экрана
System.out.println("value: " + (int)c + “====> character: " + c);
}
}
}
Слайд 6Операторы управления выполнением программы
Операторы break и continue
- Управление выполнением циклов: break прерывает
Операторы управления выполнением программы
Операторы break и continue
- Управление выполнением циклов: break прерывает
Передача управления по метке (метка – это идентификатор, после которого стоит символ «:», метками можно снабжать циклы и программные блоки {…..}) : break с меткой прерывает внутренний цикл или блок и передает управление на оператор, следующий за помеченным циклом (блоком); continue c меткой прерывает текущую итерацию внутреннего цикла (выполнение внутреннего блока) и передает управление на следующую итерацию внешнего помеченного цикла (начинает выполнение внешнего помеченного блока).
label1:
outer-iteration {
inner-iteration {
//...
break; // 1
//...
continue; // 2
//...
continue label1; // 3
//...
break label1; // 4
}
//…
}
break без метки используется также в операторе switch-case
Слайд 7Операторы управления выполнением программы
Оператор switch-case
switch(выражение) {
case значение1: {группа операторов;
break; }
case значение2:
Операторы управления выполнением программы
Оператор switch-case
switch(выражение) {
case значение1: {группа операторов;
break; }
case значение2:
break; }
case значение3: {группа операторов;
break; }
…
default: {группа операторов;}
}
Выражение – типы int или char , при этом значения в case – того же типа и не должны совпадать. Если значению выражения не соответствует ни один из конструкций case, выполняется код после ключевого слова default. Конструкция default необязательна. Когда ни один из case не соответствует значению выражения и в switch отсутствует конструкция default, выполнение программы продолжается со следующего за switch оператором.
break без метки приводит к передаче управления на код, стоящий после оператора switch. Если break отсутствует, после текущего раздела case будет выполняться следующий.
Иногда бывает удобно иметь в операторе switch несколько смежных разделов case, не разделенных оператором break.
Слайд 8Операторы управления выполнением программы
Пример: В случайном порядке создаются буквы и проверяются, являются
Операторы управления выполнением программы
Пример: В случайном порядке создаются буквы и проверяются, являются
public class VowelsAndConsonants {
public static void main(String[] args) {
for(int i = 0; i < 100; i++) {
char c = (char)(Math.random() * 26 + 'a');
System.out.print(c + ": ");
switch(c) {
case 'a':
case 'e':
case 'i':
case 'o':
case 'u': { System.out.println("гласная"); break;}
case 'y':
case 'w': { System.out.println(" иногда гласная"); break;}
default: { System.out.println("согласная"); }
}
}
}}
Хотя здесь используется переключение для символов (char), инструкция switch на самом деле использует целые значения номеров символов в таблице ASCII. Символы в одинарных кавычках в инструкциях case также производят целочисленные значения, которые и используются для сравнения.
Несколько case‘ов друг над другом без break обеспечивают выполнение одного и того же действия при разных значениях переключателя.
Math.random( ) генерирует значения в пределах от 0 до 1. Номера букв в таблице символов ASCII начинаются с 27. Чтобы получать случайным образом номера букв необходимо умножить результат Math.random( ) на верхний предел границы чисел - 26 и прибавлять смещение для установки нижней границы номеров букв. Поскольку Math.random( ) генерирует числа типа double необходимо провести явное приведение типа (char).
Слайд 9Операторы управления выполнением программы
Оператор «запятая»
Иногда возникают ситуации, когда разделы инициализации или
Операторы управления выполнением программы
Оператор «запятая»
Иногда возникают ситуации, когда разделы инициализации или
class Comma {
public static void main(String args[]) {
int a, b;
for (a = 1, b = 4; a < b; a++, b--) {
System.out.println("a = " + a);
System.out.println("b = " + b);
}
} }
Вывод этой программы показывает, что цикл выполняется всего два раза.
С: \> java Comma
а = 1
b = 4
а = 2
b = 3
Слайд 10Общая структура программы на языке Java
Блок идентификации пакетов и подключения внешних библиотек
Общая структура программы на языке Java
Блок идентификации пакетов и подключения внешних библиотек
Блок описания уникальных интерфейсов (ключевое слово interface)
Описание классов (в файле может быть несколько описаний классов)
Заголовок класса (ключевое слово class)
Объявление и инициализация переменных класса
Описание методов класса
Запуск класса на выполнение (необязателен):
метод public static void main(String args[ ]) {…}
Для
каждого
класса
Слайд 11Пример: Написать на Java программу, которая проверяет есть ли в массиве заданное
Пример: Написать на Java программу, которая проверяет есть ли в массиве заданное
// Primer011.java
import java.util.*;
class Primer011 {
public static boolean proverka(int a[], int b) {
boolean f = false;
for (int i=0; i<=a.length-1; i++) {
if (a[i] == b) { f = true;
}
}
return f;
}
public static void main(String args[]) {
int aa[] = {33, 10, 1, 7, 9, 20, 0, 12, 20, 99, 56};
int bb = (int) (Math.random()*100 + 1);
if (proverka(aa, bb)) {
System.out.println(“Есть - " + bb);
} else {
System.out.println(“Нет - " + bb);
}
} // main
} // class