Не сте регистриран! Регистрирайте се БЕЗПЛАТНО, за да използвате услугите на сайта!

   Рубрики
 
 
 
 

 Форуми
» SEO и оптимизация
» Всичко за PHP и Perl
» Всичко за C, C++ и .NET
» Всичко за Java и JSP
» Всичко за SQL и MySQL
» Всичко за XHTML и CSS
» Презентация на сайтове
 Ръководство по програмиране на Java - част 5
  1. Ръководство по програмиране на Java - част 5
     
Автор  eminem (03.02.2005 18:56)  съобщение до автора
Погледнат  4805 пъти  добави към любими
Оценка  добави коментар
Гласове  4  изпрати на приятел
Коментари  (0)  абонирай се за Java
    Страница 1 / 1

 



МНОГОВАРИАНТЕН ИЗБОР


Оператор за многовариантен избор
Съществуват средства, които подпомагат програмната реализация на разклонените алгоритми. Специално внимание ще обърнем на случаите, в които на определен етап от вземането на решение трябва да се избира между повече от два варианта. За целта ще разгледаме задача, която се свежда до подобен многовариантен избор на решение.

Задача1: Съставете програма, която въвежда последователно: първо реално число, знак за операция (един от ‘+’, ‘-‘, ‘*’, ‘/’), второ реално число и изчислява и извежда стойността на съответната операция. В случай, че е въведен недопустим знак за операция, програмата трябва да дава съобщение “Грешна операция”.
Алгоритъм за решаване на задача 1 включва многовариантен избор на вземане на решение, защото пресмятането може да се извърши по един от четири възможни варианта (в зависимост от това дали е въведен знак ‘+’, ‘-‘, ‘*’ или ‘/’). Програмирането на този етап включва използването на няколко условни оператора.

Пр. 1  Избор между четири възможни варианта, реализиран с условни оператори.
Ако стойностите на роменливите number1 и number2 са двете въведени реални числа, а стойността на променливата operation е въведеният знак за операция, то пресмятането може да стане така:

CODE
1
2
3
4
5
if (operation ==‘*’) result = number1*number2;
 
else if (operation == ‘/’) result = number1/number2;
          
else if (operation == ‘+’) result = number1+number2;
                   
else if (operation == ‘-’) result = number1-number2;
                            
else InvalidOperation = true;
За такива случаи е предвиден специален оператор (оператор за многовариантен избор), който улеснява програмирането на случаи, когато се налага да се прави избор между повече възможни варианти на действие. Операторът за многовариантен избор представя вземането на решения при наличието на сложни условия и прави програмата много по-ясна и четлива.
В езика за програмиране Java за многовариантен избор се използва оператора switch. Действията, между които се избира, са взаимноизключващи се (изпълнява се не повече от едно действие). Взаимноизключващите се действия ще наричаме варианти.Ето как изглежда реализацията на оператора switch:

CODE
1
2
3
4
5
6
switch ( <ключ> ) {
       
case <вариант1>:<оператори>;
        …
       
case <вариантN>:<оператори>;
       
default: <оператори>;
}

Стойността на ключа след switch, определя кой от вариантите трябва да бъде изпълнен т.е. всеки вариант се сравнява с ключа и ако съвпадне, се изпълняват операторите след него. За да изпълни само тях (и да не продължи с изпълнението на другите) след всеки вариант трябва да се запише служебната дума break;.
Ролята на операторите след default е да посочат какво да изпълни програмата, ако случаят, който е въведен не съвпада с нито един от вариантите, посочени за многовариантния оператор.

Пр. 2  Оператор switch
1.Избор (между 4 варианта), определен от стойността на целочислена  променлива I:


                       CODE
1
2
3
4
5
6
7
8
switch (I)
                          {
           
case 1: y = x*x*x; break;
           
case 2: y = Math.abs(x); break;
           
case 3: y = 0; break;
           
case 4: y = Math.pow(x,4); break;
           
default: y = -1;
                          
}
  При изпълнение на този оператор , ако I има стойност 1, на у ще бъде присвоена стойността на израза х*х*х, ако I е 2, у ще получи стойността на Math.abs(x) и аналогично – за стойност на I=3 или 4, ще се премине към изплнението на оператора, следващ case. Ако е зададена друга стойност то на у ще се присвои стойност –1.
 2. Избор (между четири варианта), определен от стойността на променлива grade от знаков тип:
       CODE
1
2
3
4
5
6
7
8
9
10
11
switch (grade)         
              {
    
caseA’: System.out.println (Congratulations!”);    
    
break;
caseB’:System.out.println (Not bad, B level is OK);                 break;
    
caseC’:System.out.println (C level is only average);  
    
break;
             
caseD’:System.out.println (D level is terrible);
                         
break;
         
default:System.out.println(No excuses!Study harder!”);
              
}

Примерна програма
Нека като пример за приложение на оператор да съставим програмат от задача 1.

Пр. 3  Програма за решаване на задача 1
CODE
1
Проектиране
Според условието на задача 1 аргументите и резултатът на операциите са реални числа, а знакът на операцията е от знаков тип. Ето защо в програмата се декларират променливите:
  CODE
1
2
char operation
         
float number1, number2, result;
Знакът на операцията може да бъде един от четирите ‘-‘, ‘*’, ‘/’,  ‘+’, като се избира между четири варианта. В този случай логично е да използваме оператора за многовариантен избор като най-удобно средство за програмиране:
CODE
1
2
3
4
5
6
7
switch (operation){
 
case ‘*’: result = number1 * number2; break;
         
case ‘/’: result = number1 / number2; break;
          case ‘+’: result = number1 + number2; break;
          case ‘-’: result = number1 - number2; break;
        default: InvalidOperation = true;
   }



   


Ключови думи: програмиране code код script алгоритъм многовариантен избор Java


Още уроци от тази рубрика


 
  • Подобни теми от myLinks
 

 1 посетител чете този урок (0 потребители и 1 гост)  
Активни потребители: ---
   
  

Еmail  
 

 

 
  • Интересно от Софтуер
 



IT-PLACE.NET © 2004 - 2008