Выражения, имеющие тип с плавающей точкой не разрешены

Иногда в качестве управляющего switch – выражения используется просто переменная.

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

В качестве инструкции прерывания действия используют break, которая прерывает выполнение инструкции switch. Альтернативой может быть и инструкции goto, которую обычно применяют для перехода в другое место программы.

Пример. Программа запрашивает день недели. В зависимости от введенного номера выводится строка из списка с комментарием.

using System;

 

namespace ConsoleApplication1

{

class Program

{

   static void Main(string[] args)

   {

       int d;

       Console.Write("Введите день недели ");

       d= Convert.ToInt16(Console.ReadLine());//преобразует вводимое с клавиатуры число в виде строки в целый тип данных

       switch (d)

       {

           case 1: Console.WriteLine("Понедельник - рабочий день"); break;

           case 2: Console.WriteLine("Вторник - рабочий день"); break;

           case 3: Console.WriteLine("Среда - рабочий день"); break;

           case 4: Console.WriteLine("Четверг - рабочий день"); break;

           case 5: Console.WriteLine("Пятница - рабочий день"); break;

           case 6: Console.WriteLine("Суббота - самоподготовка"); break;

           case 7: Console.WriteLine("Воскресенье - выходной день"); break;

           default: Console.WriteLine("Неверный ввод данных. Введите 1<=d<=7"); break;

       }

       Console.ReadKey();

 

  }

}

}

Результаты работы программы:

     
 

 


                                                                        

                           ...           

 

         
 
 


Задача. Программа принимает с клавиатуры код клавиш A, B, C и в зависимости от ее номера выводит на дисплей текстовый комментарий.

static void Main(string[] args)

   {

   char q;

       Console.WriteLine("Введите букву "); //ввод данных с клавиатуры

       q =Convert.ToChar(Console.ReadLine()); /*преобразует вводимое с клавиатуры число в виде строки в символьный тип данных*/

       switch (q)  // переменная символьного типа

       {

           case 'A': Console.WriteLine("q содержит A"); break;

           case 'B': Console.WriteLine("q содержит В"); break;

           case 'C': Console.WriteLine("q содержит C"); break;

       }

       Console.ReadKey();

   }

Необязательная инструкция default отсутствует.

В общем виде, когда надо выполнить несколько действий, операторs  switch, case записывается следующим образом:

switch (выражение)

{

case константа_n1:

  {         

      //инструкции1;

}                       

case константа_n2:

{

     //инструкции2;

}                      

case константа_nn:

{

    //инструкции nn;

}                      

default:  

 {                   

     //инструкции;

 }

}                   

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

x = Convert.ToDouble(Console.ReadLine()); //вещественный тип

d = Convert.ToInt16(Console.ReadLine()); //целый тип  

z = Convert.ToInt32(Console.ReadLine());    //целый тип

ch=Convert.ToChar(Console.ReadLine());    //символьный тип

Методы содержат процедуру чтения с последующим образованием новой строки (ReadLine()) и функцию преобразования вводимых с клавиатуры данных, воспринимаемых в виде строки в тип данных, соответствующих объявленному диапазону.

 

Задача. Используя оператор выбора, вычислить значения функции:

 

                                                                                           

 

 

static void Main(string[] args)

   {

      int A;

      double x,y;

      Console.WriteLine("Введите x "); 

      x= Convert.ToDouble(Console.ReadLine());

      M:Console.WriteLine("Введите параметр А ");

      A= Convert.ToInt16(Console.ReadLine());

      switch (A)

      {

        case 0:y=Math.Cos(x); break;

        case 1:y=(x-10)*8; break;

        case -1:y=A*7*x; break;

        default:

          { 

             Console.WriteLine("A введено не верно!");

           goto M;

          }

      }

       Console.WriteLine(" А=" + A);

       Console.WriteLine(" *********************** ");

       Console.WriteLine(" * x= {0,4} * y= {1,6:f} *",x,y);

       Console.WriteLine(" *********************** ");

       Console.ReadKey();

   }

 




Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: