русс | укр

Языки программирования

ПаскальСиАссемблерJavaMatlabPhpHtmlJavaScriptCSSC#DelphiТурбо Пролог

Компьютерные сетиСистемное программное обеспечениеИнформационные технологииПрограммирование

Все о программировании


Linux Unix Алгоритмические языки Аналоговые и гибридные вычислительные устройства Архитектура микроконтроллеров Введение в разработку распределенных информационных систем Введение в численные методы Дискретная математика Информационное обслуживание пользователей Информация и моделирование в управлении производством Компьютерная графика Математическое и компьютерное моделирование Моделирование Нейрокомпьютеры Проектирование программ диагностики компьютерных систем и сетей Проектирование системных программ Системы счисления Теория статистики Теория оптимизации Уроки AutoCAD 3D Уроки базы данных Access Уроки Orcad Цифровые автоматы Шпаргалки по компьютеру Шпаргалки по программированию Экспертные системы Элементы теории информации

If (условие)


Дата добавления: 2015-07-04; просмотров: 548; Нарушение авторских прав


оператор-1;

else оператор-2;

где условие – это любое логическое выражение (обязательно ставится в скобки).

В каждой ветке альтернативы может следовать только один оператор языка, причем перед else точка с запятой ставитсяобязательно.

Примеры:

1. определить значения переменной z после выполнения операторов:

x = 1;

z = 3;

if (x – z > 0) в данном случае условие ложно, поэтому

z = z – 1; будетвыполняться ветвь else, и, значит,

else z = z + 1; z = 4

2. определить наибольшую из двух переменных a и b, присвоив ее значение переменной с:

данет

 

 

Словесное описание алгоритма:

ЕСЛИ (a > b)

ТО c = a

ИНАЧЕ c = b;

Реализуем этот алгоритм на Java:

if (a > b)

c = a;

else c = b;

3. решить эту же задачу сокращенной альтернативой:

а)двумя сокращенными альтернативами:

if (a > b)

c = a;

if (b > a)

c = b;

 

б)одной сокращенной альтернативой:

c = b;

if (a > b)

c = a;

 

 

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

sin c,если c < 2,5

a =

cos c,если c ≥ 2,5

| c |,если c < 2,5

b =

1/c, если c ≥ 2,5

 

На Java:

if (c < 2.5) Внимание! Перед служебным словом

{ elseставится точка с запятой!

a=Math.sin(c);

b=Math.abs(c);

}

Else

{

a=Math.cos(c);

b=1.0/c;

}

Еще раз необходимо обратить внимание на то, что в Java после закрывающей фигурной скобки точка с запятой не ставится, а перед ней – обязательно.

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

Примеры:

1. определить наибольшую из трех переменных x, y,z и присвоить ее значение переменной s:



а) с использованием полной альтернативы:

ЕСЛИ (x > y) if (x > y)

ТО ЕСЛИ (x > z) if (x > z)

ТО s = x s=x;

ИНАЧЕ s = z else s=z;

ИНАЧЕ ЕСЛИ (y > z) else if (y > z)

ТО s = y s=y;

ИНАЧЕ s = z; else s=z;

б) с использованием усеченной альтернативы: вариант 1

 

 

s = z; s = z;

ЕСЛИ (x > y) if (x > y)

ТО ЕСЛИ (x > z) if (x > z)

ТО s = x; s=x;

ЕСЛИ (y > x) if (y >x)

ТО ЕСЛИ (y > z) if (y > z)

ТО s = y; s=y;

Вариант 2 – с использованием операции конъюнкции

s = z; s = z;

ЕСЛИ (x > y) & (x > z) if ((x > y) && (x > z))

ТО s = x; s=x;

ЕСЛИ (y > x) & (y > z) if ((y >x) && (y > z))

ТО s = y; s=y;

 

2. по заданной дате (день, месяц, год) определить день недели, приходящийся на нее:

 

package javaapplication1;

// Импорт библиотеки графических компонентов Swing

import javax.swing.*;

public class JavaApplication1 // описание главного класса

{

public static void main(String[] args) // описание

// главного метода

// main этого класса

{

// описание переменных:

int c, y1, y2, kl, day, month, year;

String input, text;

// вызов диалогового окна ввода исходных данных

input=JOptionPane.showInputDialog("Введите день:");

// преобразование из строкового значения в целое

day=Integer.parseInt(input);

input=JOptionPane.showInputDialog("Введите месяц:");

month=Integer.parseInt(input);

input=JOptionPane.showInputDialog("Введите год:");

year=Integer.parseInt(input);

// формирование строки вывода

text="Вы ввели:\nдень - " + day + "\nмесяц: " + month + "\nгод - " + year;

// вызов диалогового окна эхо-печати

JOptionPane.showMessageDialog(null, text);

// вычисление значений переменных

kl=0;

c=0;

y1=year/100;

y2=year-y1*100;

if ((y2==0) && (y1%4==0))

c=1;

if ((y2!=0) && (y2%4==0))

c=1;

if ((c==1) && (month==1) || (month==2))

kl=1;

if ((c==0) && (month==1) || (month==2))

kl=2;

c=(int)Math.ceil(365.25*y2) + (int)Math.ceil(30.56*month) + day + kl;

c %= 7;

// формирование строки вывода

if (c==0)

text="Это понедельник";

if (c==1)

text="Это вторник";

if (c==2)

text="Это среда";

if (c==3)

text="Это четверг";

if (c==4)

text="Это пятница";

if (c==5)

text="Это суббота";

if (c==6)

text="Это воскресенье";

// вызов диалогового окна вывода переменных

JOptionPane.showMessageDialog(null, text);

}

}

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

if (n>0)

if (m % n > 2)

m -= n;

else m += n;

else m %= n;

В данном случае ветвь else m += n относится к if (m % n > 2), а ветвь
else m %= n относится к if (n > 0).

При переходе с Паскаля на Java программисты часто допускают ошибки при формировании условия в операторе if, путая две операции:

= присваивания и

== сравнения:

if (a==b)

System.out.printf(“\nЭти величины равны между собой”);

else System.out.printf(“\nЭти величины не равны между собой”);

Это правильное сравнение значений двух переменных.

Перепишем это сравнение с ошибкой:

if (a=b)

System.out.printf(“\nЭти величины равны между собой”);

else System.out.printf(“\nЭти величины не равны между собой”);

Компилятор обработает эту ошибку и выдаст сообщение:

Exception in thread "main" java.lang.RuntimeException: Uncompilable source code - incompatible types



<== предыдущая лекция | следующая лекция ==>
Альтернатива | Required: boolean


Карта сайта Карта сайта укр


Уроки php mysql Программирование

Онлайн система счисления Калькулятор онлайн обычный Инженерный калькулятор онлайн Замена русских букв на английские для вебмастеров Замена русских букв на английские

Аппаратное и программное обеспечение Графика и компьютерная сфера Интегрированная геоинформационная система Интернет Компьютер Комплектующие компьютера Лекции Методы и средства измерений неэлектрических величин Обслуживание компьютерных и периферийных устройств Операционные системы Параллельное программирование Проектирование электронных средств Периферийные устройства Полезные ресурсы для программистов Программы для программистов Статьи для программистов Cтруктура и организация данных


 


Не нашли то, что искали? Google вам в помощь!

 
 

© life-prog.ru При использовании материалов прямая ссылка на сайт обязательна.

Генерация страницы за: 0.503 сек.