CS1L16——switch语句

switch

让顺序执行的代码 产生分支

基本语法

注意:常量只能写一个值,不能写变量,一个范围 条件运算符 逻辑运算符!
switch​只判断变量是否等于一个固定值!!!

case​ 可以有无数个,如果上面 case​ 的条件都不满足 就会执行 default​ 代码块

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
//switch (变量)
//{
// 变量 == 常量 执行 case 和 break 之间的代码
// case 常量:
// 满足条件执行的代码逻辑;
// break;
// case 常量:
// 满足条件执行的代码逻辑;
// break;
// case可以有无数个
// default:
// 如果上面case的条件都不满足 就会执行 default代码块;
//}
//注意:常量只能写一个值,不能写变量,一个范围 条件运算符 逻辑运算符!
//switch只判断变量是否等于一个固定值!!!

int a = 3;
switch (a)
{
//case的条件用的一定是常量,变量也不可以用!!!
case 1:
Console.WriteLine("a等于1");
break; //break会直接结束switch这个代码块
case 2:
Console.WriteLine("a等于2");
break;
case 3:
Console.WriteLine("a等于3");
break;
default:
Console.WriteLine("什么条件都不满足,执行default代码块");
break;
}
  • case​ 可以有无数个
  • default:​ 如果上面 case​ 的条件都不满足 就会执行 default​ 代码块

注意:常量只能写一个值,不能写变量,一个范围 条件运算符 逻辑运算符!!!

switch​ 只判断变量是否等于一个固定值!!!

switch​ 一般配合枚举的使用

case​ 只能填入能够隐式转换的类型

本课源代码

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
namespace lesson16switch语句
{
internal class Program
{
static void Main(string[] args)
{
Console.WriteLine("switch语句");
#region 作用
//让顺序执行的代码 产生分支
#endregion

#region 基本语法
//switch (变量)
//{
// 变量 == 常量 执行 case 和 break 之间的代码
// case 常量:
// 满足条件执行的代码逻辑;
// break;
// case 常量:
// 满足条件执行的代码逻辑;
// break;
// case可以有无数个
// default:
// 如果上面case的条件都不满足 就会执行 default代码块;
//}
//注意:常量只能写一个值,不能写变量,一个范围 条件运算符 逻辑运算符!
//switch只判断变量是否等于一个固定值!!!

int a = 3;
switch (a)
{
//case的条件用的一定是常量,变量也不可以用!!!
case 1:
Console.WriteLine("a等于1");
break; //break会直接结束switch这个代码块
case 2:
Console.WriteLine("a等于2");
break;
case 3:
Console.WriteLine("a等于3");
break;
default:
Console.WriteLine("什么条件都不满足,执行default代码块");
break;
}

float f = 1.4f;
//一般配合枚举的使用!
switch (f)
{
// case只能填入能够隐式转换的类型
case 1.5f:
Console.WriteLine("f等于1.5");
break;
case 1:
Console.WriteLine("f等于1");
break;
default:
break;
}
#endregion

#region default可以省略
string str = "123";
switch (str)
{
case "123":
Console.WriteLine("str等于123");
break;
case "234":
Console.WriteLine("str等于234");
break;
//default可以省略不写
}

#endregion

#region 可以自定义常量
char c = 'A';
const char c2 = 'A'; //必须初始化且不能被修改
switch (c)
{
case c2:
Console.WriteLine("等于c2");
break;
default:
Console.WriteLine("不满足任何条件");
break;
}

#endregion

#region 贯穿
//作用:满足某些条件时 做的事情是一样的 就可以用贯穿
int aa = 1;
switch (aa)
{
case 3:
//一个case没有break也没有执行任何语句,就会贯穿,判断完会直接进入下一句case
case 1:
//一旦贯穿期间出现了满足条件的case,则执行下方拥有语句块的case代码块,无论被执行的case代码块是否满足条件
case 4:
case 2:
//case与break可以写n句语句
//且可以嵌套使用各种语句
Console.WriteLine("是个数字");
//虽然不满足等于2,但由于已经满足了case 1,所以仍然会执行case 2 下的语句
break;
default:
//一旦满足任何一个case条件后,即使所有case没有任何语句也不会再执行default代码块
Console.WriteLine("没有运行");
break;
}
#endregion
}
}
}