❓问题 1
有⼀台⾃动售货机,⾥⾯⼀共6个商品。⽤户可以输⼊1-6选择要购买的商品。
1 矿泉⽔ 2红茶 3绿茶 4雪碧 5可⼝可乐 6脉动
根据⽤户输⼊的数字,显⽰⽤户购买的商品。
c# int number = Convert.ToInt32(Console.ReadLine());
if (number == 1)
{
Console.WriteLine("矿泉水");
}else if (number == 2)
{
Console.WriteLine("红茶");
}else if (number == 3)
{
Console.WriteLine("绿茶");
}
else if (number == 4)
{
Console.WriteLine("雪碧");
}
else if (number == 5)
{
Console.WriteLine("可口可乐");
}
else
{
Console.WriteLine("脉动");
}
当嵌套的 if 比较少时(三个以内),用 if 编写程序会比较简洁。
但是当选择的分支比较多时,嵌套的 if 语句层数就会很多,导致程序冗长,可读性下降。
因此C#语言提供 switch 语句来处理多分支选择。
switch分支的语法格式
switch(变量)
{
case 条件1:
做...
case 条件2:
做...
case 条件3:
做...
default:
做...
}
注
1、default可以没有 , default 后面也可以什么都不写,但是后面的冒号和分号千万不能省略,省略了就是语法错误。
2、每⼀个case后⾯⼀般都有break
3、 switch 后面括号内的“表达式”必须是整数类型。也就是说可以是 int 型变量、char 型变量,也可以直接是整数或字符常量,哪怕是负数都可以。但绝对不可以是实数,float 型变量、double 型变量、小数常量通通不行,全部都是语法错误。
4、switch 下的 case 和 default 必须用一对大括号{}括起来。
c# int number = Convert.ToInt32(Console.ReadLine());
switch (number)
{
case 1:
Console.WriteLine("矿泉水");
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;
default:
Console.WriteLine("没有你要购买的商品");
break;
}
❓问题 2
输⼊今天是星期⼏,输出今天要上的课程。
日期 | 课程 |
---|---|
1 | PLC |
2 | PLC |
3 | C++ |
4 | C++ |
5 | C++ |
6 | Scratch |
7 | Scratch |
c# int weekNum = Convert.ToInt32(Console.ReadLine());
switch (weekNum)
{
case 1:
case 2:
Console.WriteLine("PLC");
break;
case 3:
case 4:
case 5:
Console.WriteLine("C++");
break;
case 6:
case 7:
Console.WriteLine("Scratch");
break;
}
If和switch的异同
c#
int x = 1, a = 0, b = 0;
switch (x) {
case 0:
case 1: a++;
case 2: a++,b++;
}
Console.WriteLine("a="+a+" b="+b);