русс | укр

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

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

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

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


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

Else . . .


Дата добавления: 2013-12-23; просмотров: 1057; Нарушение авторских прав


M -= n;

JOptionPane.showMessageDialog(null, text);

Kl=2;

Kl=1;

Kl=0;

JOptionPane.showMessageDialog(null, text);

String input, text;

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

Package javaapplication1;

Else

X = 1;

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

Оператор-1;

If (условие)

ТО цепочка-1

ЕСЛИ (условие)

Истина (да) ложь (нет)

ИНАЧЕ цепочка-2

ТО цепочка-1

ЕСЛИ (условие)

Альтернатива

Ветвления

Цепочка

Самой простой базовой структурой является цепочка – последовательность операторов присваивания.

Цепочку можно представить следующей схемой:

 

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

Алгоритм циклического обмена в этом случае будет выглядеть следующим образом:

 

Переменные a и b обмениваются своими значениями через переменную x.

По этому алгоритму можно написать последовательность операторов:

x = a;

a = b;

b = x;

Одним из достоинств компьютеров является их способность делать выбор пути решения задачи в зависимости от выполнения заданных условий.

Выбор пути решения осуществляется в алгоритмических языках ветвлениями, которые могут быть представлены в двух формах:

· альтернатива,

· переключатель.

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



истина (да)ложь (нет)

 

Альтернативу можно описать словесно:

В альтернативе может отсутствовать часть (ветвь) ИНАЧЕ, тогда она приобретает вид усеченной альтернативы:

 

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

 

Действие альтернативы:

1. проверяется выполнение условия,

2. если условие истинно, то выполняется следующая за ним цепочка-1, а цепочка-2, если она имеется, не выполняется,

3. если условие ложно, то выполняется цепочка-2, если она имеется.

В Java, как и в Си, альтернатива реализуется условным оператором:

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

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

Примеры:

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

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);

}

{

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. по заданной дате (день, месяц, год) определить день недели, приходящийся на нее:

 

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

import javax.swing.*;

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

{

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

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

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

{

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

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

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;

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

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

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))

if ((c==0) && (month==1) || (month==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="Это воскресенье";

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

}

}

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

if (n>0)

if (m % n > 2)

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

found: double

at javaapplication1.JavaApplication1.main(JavaApplication1.java:25)

Здесь 25 – номер программной строки с ошибкой.

Часто встречающиеся ошибки программирования:

1. Использование else безпервой ветви:

if (n > m)

2. Использование открывающей фигурной скобки { без закрывающей } и наоборот.

3. Отсутствие точки с запятой перед словом else:

if (n > m)

a=1

else a=0;

4. Точка с запятой после условия:

if (n > m);

a=1;

else a=0;

5. Отсутствие точки с запятой перед закрывающей фигурной скобкой } или наличие точки с запятой после нее:

if (c < 2.5)

{

a=Math.sin(c);

b=Math.abs(c);

};



<== предыдущая лекция | следующая лекция ==>
Базовые структуры | Переключатель


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


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

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

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


 


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

 
 

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

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