Сделать стартовой | Добавить в избранное
 Зарегистрироваться
 Забыл пароль?

 
 
 Категории
   
 
 
 
 
 
 
  Урок 6. Циклические конструкции и конструкции перехода Java (видеоурок)
Категория: Java | Автор: admin | (29 июля 2009)
 
Обновлено: 29.07.2009 - 10:11

Цели видео урока

  1. Подробно изучить циклические конструкции:
    • конструкцию while
    • конструкцию do – while
    • конструкцию for
  2. Рассмотреть усовершенствованную конструкцию for (foreach)
  3. Подробно изучить конструкции перехода:
    • инструкцию break
    • инструкцию continue
  4. Рассмотреть инструкцию return

Цели видео урока

  1. Подробно изучить циклические конструкции:
    • конструкцию while
    • конструкцию do – while
    • конструкцию for
  2. Рассмотреть усовершенствованную конструкцию for (foreach)
  3. Подробно изучить конструкции перехода:
    • инструкцию break
    • инструкцию continue
  4. Рассмотреть инструкцию return

Описание видео урока

В данном уроке продолжаем рассматривать управляющие конструкции языка Java. Подробно будут рассмотрены циклические конструкции и конструкции перехода.

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

В начале урока будет рассмотрена конструкция while потому, что она является наиболее часто используемой циклической конструкцией. Конструкция do – while применяется реже конструкции while, но в практике довольно много случаев, когда приходится использовать именно эту конструкцию, т.к., при определенных обстоятельствах, она позволяет написать более эффективный код. Если заранее неизвестно, сколько итераций должен выполнить цикл, нужно использовать конструкцию while или do - while.

Если необходим цикл, выполняющийся определенное количество раз, то лучшим вариантом будет цикл for. Этому циклу так же уделяется большое внимание, т.к. на практике и этот вариант циклической конструкции находит широкое применение. В практической части урока, рассматривая конструкцию for, будет использован вложенный цикл, который выполняется внутри внешнего. Прием вложения циклов друг в друга используется почти в каждой программе.

Усовершенствованный цикл for (foreach) полезен для выполнения действий над каждым элементом из какой – либо коллекции, например, из массива. Этот цикл будет подробнее рассмотрен в следующих уроках.

Далее рассматриваются инструкции break и continue. Они позволяют управлять течением цикла. Инструкция break прерывает цикл без выполнения оставшихся инструкций в цикле. Инструкция continue останавливает выполнение текущей итерации, переходит к концу тела цикла и начинает новую итерацию.

В конструкции перехода так же входит инструкция return, которая будет подробно рассмотрена в следующих уроках.

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




Бесплатно скачать видео урок:

Скачать видеоурок в формате mp4 (depositfiles)

Скачать видеоурок в формате mp4 (letitbit)

Скачать видеоурок в формате mp4 (ifolder)

Задания

Тест

  1. Если заранее неизвестно, сколько итераций должен выполнить цикл, нужно использовать конструкцию:
    1. for
    2. while
  2. Если тело цикла необходимо выполнить определенное количество раз, нужно использовать конструкцию:
    1. while
    2. foreach
    3. for
    4. do – while
  3. В качестве условия цикла может выступать:
    1. любое логическое выражение
    2. только логические выражения сравнения
    3. любое выражение
    4. переменная любого типа
  4. Если при первой проверке условия в конструкции do - while получен false, то тело цикла будет выполнено:
    1. 0 раз
    2. 1 раз
    3. 2 раза
    4. будет выполняться до тех пор, пока в условии не будет получен true
  5. Все секции заголовка цикла for являются обязательными:
    1. да
    2. нет
  6. Инструкция break применяется только в циклических конструкциях:
    1. да
    2. нет
  7. С помощью инструкции break можно остановить выполнение:
    1. любой инструкции
    2. любой инструкции, снабженной соответствующей меткой
    3. только цикла while и do – while
    4. только цикла for
  8. Инструкция continue применяется только в циклических конструкциях:
    1. да
    2. нет

Найдите ошибку и исправьте ее

int i = 100, count = 0;
for(int k = 0; k < i; k += 10)
{
count++;
}
System.out.println(k);

Ситуация

Программист утверждает, что при компиляции программы будет выдана ошибка из-за того, что в программе присутствует недостижимый код. Прав ли он?

int count = 0;
while(true)
{
System.out.println("Итерация номер " + count++);
if(false)
break;
}
System.out.println("Общее количество итераций: " + count);


Задача

Получить случайное целое число в диапазоне от 0 до 99. Вывести четные числа в диапазоне от 1 до полученного числа.

Ответы на задания

Раскрыть

Тест

1 – b; 2 – c; 3 – a; 4 – b; 5 – b; 6 – b; 7 – b; 8 – a.

Найдите ошибку и исправьте ее

Т.к. переменная k объявляется в секции инициализации цикла, то ее область видимости ограничивается телом данного цикла. Попытка обратиться к переменной за пределами цикла приведет к ошибке.

Чтобы избежать ошибки, нужно объявить переменную k до цикла.

Ситуация

Программист не прав. Несмотря на то, что инструкция

System.out.println("Общее  количество итераций: " + count);
никогда не будет выполнена, программа будет работать, т.к. инструкция break находится внутри конструкции выбора. Поэтому компилятор воспринимает break, как инструкцию, которая может быть выполнена.

Задача

public class  PrintEven{

/**
* @param args
*/
public static void main(String[] args) {
//переменная для промежуточного хранения чисел
int num = 1;

/* объявляем и присваиваем переменной случайно
сгенерированное целое число в диапазоне от 0 до 99
используем явное привед ение типа double к типу int*/
int rand = (int)(Math.random()*100);

System.out.println("Сгенерированное число: " + rand);

//применяем цикл while
while(num <= rand)
{
//если число четное, то выводим его на консоль
if(num % 2 == 0)
System.out.println(num);
num++;
}
}
}


 

КОММЕНТАРИИ

(30.07.2009 - 08:58) цитировать
 
 
Можно еще вот так задачку решить:
public class rand {

/**
* @param args
*/
public static void main(String[] args){
// TODO Auto-generated method stub


double i= Math.random()*100;
int k=(int)i;

System.out.print("Четные числа в диапазоне от 0 до"+k+":");
for(int j=0;j<=k;k--)
{
if(k%2==0)
System.out.print(k+" ");
}
}
}
Спасибо за новый урок, очень полезный!!!!
 
 
(25.04.2010 - 19:14) цитировать
 
 
Вот очень коротенькое решение данное задачки:

public class Zadacha_Slych_Cheloe {
/**
* @param args
*/
public static void main(String[] args) {
int chislo = (int)(Math.random()*100);
for (int i=2; i<chislo; i+=2)
System.out.println(i);
System.out.println("случайное число: " + chislo);
}
}
 
 
(30.06.2010 - 00:07) цитировать
 
 
Запрашиваемый файл не найден
File not found
 
 
(23.09.2010 - 17:13) цитировать
 
 
"Если заранее неизвестно, сколько итераций должен выполнить цикл, нужно использовать конструкцию:"

"Если тело цикла необходимо выполнить определенное количество раз, нужно использовать конструкцию:"

можно спросить, а это не одно и тоже? Зачем лишняя строчка счетчика в цикле while, если в цикле for можно все задать сразу. Хотя это, наверно, уже вопрос к стилю программирования.
 
 
(27.12.2010 - 22:49) цитировать
 
 
Derzskyi public static void main(String[] args) {
int random=(int)(Math.random()*100);
int count=1;
while (count<random)
{
if (count % 2 == 0) {
System.out.println(count);
}
count++;
}
System.out.println("\t\t"+random);
}
}
админ, проверь, пожалуйста. скаджи мне, если что-то не так.
 
 
 Добавление комментария:
 
Имя:
Пароль: (если зарегистрирован)
Email: (обязательно!)

теги форматирования

добавить смайлы
 
 
 
 
 
 
Copyright © 2007-2008 ITLIFT.ru
Powered by CMS 2z project
SQL запросов: 4 | Генерация страницы: 0.1 сек 
[debug] {debug_queries}
{debug_profiler} [/debug]