流程控制: 不管在简单的程序还是复杂的程序,一般包含三种结构:顺序结构,选择结构,循环结构。 顺序结构:默认就是顺序结构,就是说程序自上而下依次按照顺序执行。 选择结构:程序有条件(有选择)的去执行某些代码(单分支if 双分支if-else 多分支if-elseif-……-else switch-case) 循环结构:程序有条件的重复执行某些代码(for循环<foreach>
while循环<do-while>
)
if
注意语法结构:
-
单分支 if
-
双分支 if else
-
多分支 if else if else if 适合条件为判断同一变量的不同区间
格式: 单分支:if+tab if(条件){成立:执行代码}
双分支:if(条件){成立:执行代码1}else{不成立:执行代码2}
单分支和双分支
// 1.输入一个性别(男/女),输入是个男性还是女性。 string info = "女"; if (info == "男") { Debug.Print("是个男性"); } else { Debug.Print("是个女性"); } // 2.输入性别(男/女)和年龄(数字0-150),输出是否是成年/未成年/男性/女性。 string info = "女"; int age = int.Parse("25"); if (info == "男") { if (age > 20) { Debug.Print("成年男性"); }else { Debug.Print("未成年男性"); } }else { if (age > 20) { Debug.Print("成年女性"); } else { Debug.Print("未成年女性"); } } if (info == "男" && age >= 20) { Debug.Print("成年男性"); }else { Debug.Print("不是成年男性"); }
多分支
格式: 多分支:if(条件){成立:执行代码1}elseif(条件){成立:执行代码2}……else{都不成立:执行代码n}
注意:1.判断条件是有递进关系 2.一旦一个分支执行了其他分支都不执行
// 3.从键盘输入你的成绩,大于90的称为学神,大于80的称为学霸,大于70的称为学生,大于60的称为学渣,其他退学 int score = int.Parse("88"); if (score >= 90) { Debug.Print("学神"); } else if (score >= 80) { Debug.Print("学霸"); } else if (score >= 70) { Debug.Print("学生"); } else if (score >= 60) { Debug.Print("学渣"); }else { Debug.Print("退学"); } // 4.从键盘输入三个数x,y,z,分别求出最大值、最小值、和中间值 int x = int.Parse("3"); int y = int.Parse("8"); int z = int.Parse("5"); int max, min, mid, temp; if (x > y && x > z) { max = x; } else if (y > x && y > z) { max = y; } else { max = z; } Debug.Print("最大值:" + max); if (x < y && x < z) { min = x; } else if (y < x && y < z) { min = y; } else { min = z; } Debug.Print("最小值:" + min); mid = x + y + z - max - min; Debug.Print("中间值:" + mid); /* int max, temp; if (x > y) { max = x; temp = y; }else { max = y; temp = x; } // 上面执行完:max 是 x 和 y 中较大的,temp 是 x 和 y 中较小的 if (z > max) { Debug.Print("最大值:" + z); Debug.Print("中间值:" + max); Debug.Print("最小值:" + temp); } else { Debug.Print("最大值:" + max); if (z > temp) { Debug.Print("中间值:" + z); Debug.Print("最小值:" + temp); }else { Debug.Print("中间值:" + temp); Debug.Print("最小值:" + z); } } */
switch
switch-case:switch + tab
用处:适合和有限个值做一一匹配
if和switch比较:
if一般用在区间比较 switch一般用在给定有限个具体的值比较
注意点:
①break不能省略(中断,打断) ②case后面的值可以无序,但不能重复 ③多个case可以共用一段代码 ④default 可要可不要(都匹配不上,就执行default)
比如:
console.Writeline("请输入字母"); string 变量=console.Readline(); switch (变量) { case 常量: case 常量: Debug.Print("你输入了 a 或者 b"); break; case 常量: Debug.Print("你输入了 c"); break; case 常量: Debug.Print("你输入了 d"); break; default: Debug.Print("你输入了其他字母"); break; }
注意:
常量!!!只能写一个值 不能写一个范围 不能写条件运算符 逻辑运算符
例子如下:
console.Writeline("请输入字母"); string info=console.Readline(); switch (info) { //输入a时当case "a":无代码会输出靠后的代码(输入a后控制台输出"你输入了 a 或者 b") case "a": case "b": Debug.Print("你输入了 a 或者 b"); break; case "c": Debug.Print("你输入了 c"); break; case "d": Debug.Print("你输入了 d"); break; default: Debug.Print("你输入了其他字母"); break; }