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

 
 
 Категории
   
 
 
 
 
 
 
  Урок 5. Конструкции выбора Java (видеоурок)
Категория: Java | Автор: admin | (17 июля 2009)
 
Обновлено: 29.07.2009 - 09:08

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

  • Научиться применять две формы конструкции if – else:
    • сокращенную
    • многозвенную
  • Научиться применять конструкцию switch и узнать ее ограничения.

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

  • Научиться применять две формы конструкции if – else:
    • сокращенную
    • многозвенную
  • Научиться применять конструкцию switch и узнать ее ограничения.

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

Управляющие конструкции языка Java можно разделить на три категории: конструкции выбора, циклические конструкции и конструкции перехода. В этом уроке подробно рассмотрены конструкции выбора if – else и switch, а так же способы их применения. Оставшиеся категории будут рассмотрены в следующем уроке.

Конструкции выбора позволяют управлять порядком выполнения инструкций программы в зависимости от проверки заданного условия. В начале урока рассказывается о конструкции if – else, приводится ее подробное описание и демонстрируется ее применение в среде Eclipse. Т.к. этой конструкцией приходится пользоваться особенно часто, детально рассматриваются две формы конструкции if – else: сокращенная и многозвенная. Понятным языком объясняется механизм их работы. Особое внимание в данном уроке уделяется применению различных форм конструкции if – else  на практике, т.к. полное понимание рассматриваемого материала является необходимым условием для решения различных задач программирования.

После конструкции if – else так же подробно рассматривается конструкция switch, которую, в определенных случаях, можно использовать для более эффективного решения задач, аналогичных тем задачам, которые решаются с помощью многозвенной формы конструкции if – else. Кроме того, рассмотрены условия, которые значительно ограничивают область применения конструкции switch. В среде разработки Eclipse наглядно показан порядок выполнения действий в рассматриваемой конструкции.

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

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




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

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

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

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

Задания

Тест

  1. Категории, на которые можно разделить управляющие конструкции Java:
    1. линейные конструкции, циклические конструкции и конструкции выбора
    2. конструкции выбора, конструкции перехода и циклические конструкции
    3. циклические конструкции, конструкции выбора и конструкции выхода
    4. линейные конструкции, конструкции входа и конструкции выхода
  2. Первое действие, которое происходит при входе в конструкцию if –else:
    1. выполняются инструкции блока if
    2. выполняются инструкции блока else
    3. выполняется проверка условия
    4. все перечисленные варианты выполняются одновременно
  3. Действия, происходящие в конструкции if – else, если в результате проверки условия получен false:
    1. выполняются инструкции блока else, при его наличии
    2. выдается сообщение об ошибке
    3. происходит “падение” системы, появление синего экрана
    4. условие перепроверяется до тех пор, пока не будет получен true
  4. В сокращенной форме конструкции if – else отсутствует:
    1. блок if
    2. условие входа в конструкцию
    3. блок  if и блок else
    4. блок else
  5. Одна конструкция if – else может быть вложена внутрь другой:
    1. да
    2. нет
  6. Конструкция switch позволяет:
    1. передавать управление тому или иному блоку кода, обозначенному константой целого типа
    2. передавать управление тому или иному блоку кода, в зависимости от результата проверки логического выражения любого вида
    3. передавать управление тому или иному блоку кода, обозначенному выражением любого типа
    4. полностью заменить конструкцию if – else
  7. При отсутствии команды break в каждом блоке case конструкция switch не будет работать:
    1. да
    2. нет
  8. В конструкции switch блок default может отсутствовать:
    1. да
    2. нет

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


int i = 5;
switch(i)
{
case 5:
i-=5;
default:
i=10/i;
}

Ситуация

Программист утверждает, что программа выведет сообщение "i  > 5" . Прав ли он?


int i = 8;
if(i<=5)
if (i == 0)
System.out.println("i = 0");
else
System.out.println("i > 5");

Задача

В магазине по продаже дисков действует следующая система скидок:

  • при покупке от 5 до 10 дисков скидка 5%
  • при покупке от 11 до 15 дисков скидка 8%
  • при покупке более 15 дисков скидка 10%

Стоимость одного диска составляет 150 руб.

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

Подумайте, можно ли для реализации алгоритма определения скидки использовать конструкцию switch?

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

Раскрыть

Тест

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

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

Пропущена команда break  в блоке case. В блоке default произойдет попытка деления на ноль.

Ситуация

Программист не прав, на консоль ничего не будет выведено. Оператор else связан с ближайшим оператором if. Программу можно  исправить, выделив соответствующий блок кода:

int i = 8;
if(i<=5)
{
if (i == 0)
System.out.println("i = 0");
}
else
System.out.println("i > 5");

Задача


public class Shop {

public static void main(String[] args) {
double cost = 150.0; //цена одного диска
int quantity = 6; //количество купленных дисков
double sum = 0.0; //стоимость покупки

/* для решения поставленной задачи используем
многозвенную форму конструкции if - else */
if(quantity > 0 && quantity < 5)
sum = quantity * cost; //скидка не предусмотрена
else if(quantity >= 5 && quantity <= 10)
//платим 95% от полной стоимости
sum = quantity * cost * 0.95;
else if(quantity >= 11 && quantity <= 15)
//платим 92% от полной стоимости
sum = quantity * cost * 0.92;
else if(quantity > 15)
//платим 90% от полной стоимости

sum = quantity * cost * 0.90;
else
{
//если quantity <= 0
System.out.println("Количество указано не верно");
return; //выход из метода main
}

System.out.println("Количество дисков: "
+ quantity + "\nОбщая стоимость: " + sum);
}

}

В данной задаче конструкцию switch использовать нельзя из–за сложности логических условий.



 

КОММЕНТАРИИ

(25.07.2009 - 21:13) цитировать
 
 
Требую продолжения=)
 
 
(29.07.2009 - 08:19) цитировать
 
 
Чайник написал:
Требую продолжения=)

+1!!!!!!!!!!!!
 
 
(29.07.2009 - 16:09) цитировать
 
 
admin Вот Вам, пожалуйста, шестой урок - http://itlift.ru/category/java/urok_6_c iklicheskie_konstrukcii_i_konstrukcii_perehoda_jav a_videourok.html
 
 
(30.07.2009 - 09:06) цитировать
 
 
admin, спасибо!
 
 
(7.10.2009 - 20:23) цитировать
 
 
import java.io.IOException;

public class MyClass {

/**
* @param args
* @throws IOException
*/
public static void main(String[] args) throws IOException
{
int p = 150;
double s;

System.out.println("How many disks you want to buy?");

int quantity = System.in.read();System.in.read();System.in.read() ;
if (quantity <=0) System.out.println ("Error");
else{
switch(quantity) {

case '1':
case '2':
case '3':
case '4':
s = quantity * p;
System.out.println("Priсe is "+ s);
break;

case '5':
case '6':
case '7':
case '8':
case '9':
s = quantity * p * 0.92;
System.out.println("Priсe is "+ s);
break;

default:
s = quantity * p * 0.90;
System.out.println("Priсe is "+ s);

}
}

}

}
 
 
(7.10.2009 - 20:24) цитировать
 
 
Разве так не будет правильно ?
 
 
(7.03.2010 - 18:10) цитировать
 
 
А ещё уроки будут?
Уж очень интересно!
И кстати вопрос, а проги вот эти компилируются, а их разве нельзя запускать никак?
Только в Eclipse смотреть?
 
 
(10.06.2010 - 20:16) цитировать
 
 
Наблюдается странный результат в выделенной строке (и в остальных тоже). Если 0.95 стоит между diskNum и diskPrice, то disksPrice = 854.9999999999999. Но если поставить 0.95 в конец выражения, то результат = 855. Почему Eclipse так считает, объясните, кто может.
public class Disks {

public static void main(String[] args){
double diskPrice = 150.0;
int diskNum = 16;
double disksPrice = 0.0;
if(diskNum >= 5 && diskNum <= 10)
disksPrice = diskNum * 0.95 * diskPrice /* 0.95*/;
else if.....

System.out.println("disksPrice = " + disksPrice +
"\ndiskNum = " + diskNum);
}
}
 
 
(11.06.2010 - 15:37) цитировать
 
 
Нашёл на форуме SQL.RU, что это особенности типа double и вместо него в таких ситуациях лучше использовать BigDecimal (в будущих уроках было бы интересно узнать о работе с такими типами). Но не нашёл точный ответ, почему такой результат получается. Кто знает, объясните или дайте ссылочку, пожалуйста.
 
 
(29.06.2010 - 23:45) цитировать
 
 
Скачать видеоурок в формате mp4 (letitbit) файл не найден
а другие ссылки на работе видимо блокируются
 
 
(14.10.2010 - 22:42) цитировать
 
 
Отлично!!! Я всё поняла)))
 
 
(17.10.2010 - 01:51) цитировать
 
 
public static void main(String[] args) {
int kol = 20;
int prise = 150;
int lastprise;
if (kol >=5 && kol <= 10)
{
lastprise = kol * prise;
int skidka = lastprise * 5/100;
int endprise = lastprise - skidka;
System.out.println("Ваша скидка 5% \nстоимость покупки " + endprise);
}
else if(kol >10 && kol <= 15)
{lastprise = kol * prise;
int skidka = lastprise * 8/100;
int endprise = lastprise - skidka;
System.out.println("Ваша скидка 8% \nстоимость покупки " + endprise);
}
else if (kol >=15)
{ lastprise = kol * prise;
int skidka = lastprise * 10/100;
int endprise = lastprise - skidka;
System.out.println("Ваша скидка 10% \nстоимость покупки " + endprise);
}

}

}
 
 
(25.11.2010 - 20:09) цитировать
 
 
public static void main(String[] args) {
double disk = 16, price = 150,itog,sk=0.0;
if(disk>=5&&disk<=10)sk = 0.05;
else if(disk>=11&&disk<=15)sk=0.08;
else if(disk>15)sk=0.1;
itog=disk*price*(1-sk);
System.out.println(itog + " - цена за " + disk + " диска");
 
 
(27.12.2010 - 22:31) цитировать
 
 
Derzskyi public class HalloWorld {

/**
* @param args
*/
public static void main(String[] args) {
float float_price = 150;
int amount = 50;
float float_total_price=amount*float_price;
float float_final_price;
if (amount<5)
float_final_price =float_total_price;

else if (amount>=5 && amount<=10)
float_final_price = (float) (float_total_price * 0.95);
else if (amount>=11 && amount<=15)
float_final_price = (float) (float_total_price * 0.92);
else {
float_final_price = (float) (float_total_price * 0.9);
}
System.out.println("кол-во дисков: "+ amount + "\nОбщия итоговая стоимость: " + float_final_price);
}
}
админ, проверь, пожалуйста. скажи мне где ошбки
 
 
(7.01.2011 - 21:46) цитировать
 
 
Сокращенное логическое И (&&) по моему тут неуместно
 
 
(28.01.2018 - 21:49) цитировать
 
 
Acquisto Viagra Generico In Italia Buy Celebrex Usa Dosage Cialis 20 online pharmacy Cialis Neocalis
 
 
(30.01.2018 - 09:46) цитировать
 
 
http://0daymusic.org/premium.php

Private Music/Albums/mp3 FTP 1990-2018:
Plan A: 20 EUR - 200GB - 30 Days
Plan B: 45 EUR - 600GB - 90 Days
Plan C: 80 EUR - 1500GB - 180 Days
 
 
(5.02.2018 - 13:38) цитировать
 
 
Бесплатные объявления без регистрации. Разместите бесплатные объявления и получайте бонусы на счет https://olime.ru/
 
 
(7.02.2018 - 19:13) цитировать
 
 
Холодильные витрины Илеть с глубиной выкладки 790мм <a href=https://olime.ru/>Доска бесплатных объявлений Olime</a> отличный вариант для оснащения магазинов
Часы Casio Edifice ERA-300 <a href=https://olime.ru/>Доска бесплатных объявлений Olime</a> Оригинал ,документы и чек имеются.
NEW YSL La Nuit De L Homme L Intense т/духи 60мл м <a href=https://olime.ru/>Доска бесплатных объявлений Olime</a> Композиция аромата верхние (начальные): ирис, фиалка средние (основные): ваниль
Apple iPhone X 256GB Space Gray, новый <a href=https://olime.ru/>Доска бесплатных объявлений Olime</a> Продается Apple iPhone X с объемом встроенной памяти 256 гигабайт в цвете Space Gray. Модель А1901
 
 
(8.04.2018 - 23:29) цитировать
 
 
Purchase Synthroid No Prescription buy cialis online Viagra Entrega 24h
 
 
(14.04.2018 - 20:39) цитировать
 
 
Viagra Effetti Video Keflex Affects Urination Amoxicillin Antibiotic cheap cialis no prescription Propecia Long Hair
 
 
(19.04.2018 - 20:24) цитировать
 
 
http://cialisvvr.com - cialis canada
buy generic cialis
<a href="http://cialisvvr.com">cialis generika in deutschland kaufen</a>
http://viagravvr.com - viagra for sale
100 mg viagra lowest price
<a href="http://viagravvr.com">generic viagra from amazon</a>
http://cialiskkk.com - cialis generika in deutschland kaufen
cialis coupon
<a href="http://cialiskkk.com">purchasin g cialis on the internet</a>
http://viagrakkk.com - viagra 100mg
viagra for sale
<a href="http://viagrakkk.com">viagra 100</a>
 
 
(20.04.2018 - 05:38) цитировать
 
 
http://cialisvvr.com - side effects for cialis
cialis generika
<a href="http://cialisvvr.com">viagra vs cialis vs levitra</a>
http://viagravvr.com - what does viagra do
viagra cost
<a href="http://viagravvr.com">viagra tablet</a>
http://cialiskkk.com - cialis tablets australia
cialis 30 day trial coupon
<a href="http://cialiskkk.com">cialis patentablauf in deutschland</a>
http://viagrakkk.com - generic viagra available
viagra without a doctor prescription
<a href="http://viagrakkk.com">buy viagra online</a>
 
 
 Добавление комментария:
 
Имя:
Пароль: (если зарегистрирован)
Email: (обязательно!)

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

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