流程控制:
不管在简单的程序还是复杂的程序,一般包含三种结构:顺序结构,选择结构,循环结构
顺序结构:默认就是顺序结构,就是说程序自上而下依次按照顺序执行
选择结构
(
分支结构
)
:程序有条件(有选择)的去执行某些代码(单分支
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}
单分支和双分支
//单分支结构
if (age>18)
{
Console.WriteLine("成年");
}
//双分支结构
if (age > 18)
{
Console.WriteLine("成年");
}
else
{
Console.WriteLine("未成年");
}
多分支
格式:
多分支:
if(
条件
){
成立:执行代码
1}elseif(
条件
){
成立:执行代码
2}……else{
都不成立:执行代码
n}
注意:1.
判断条件是有递进关系
2.
一旦一个分支执行了其他分支都不执行
if (age<=12)
{
Console.WriteLine("儿童");
}else if (age <= 18)
{
Console.WriteLine("青少年");
}else if (age <= 40)
{
Console.WriteLine("青年");
}
else if (age <= 50)
{
Console.WriteLine("壮年");
}else
{
Console.WriteLine("老年");
}
分支嵌套
if (age>0&&age<134)
{
//输入的年龄合法
if (age <= 12)
{
Console.WriteLine("儿童");
}
else if (age <= 18)
{
Console.WriteLine("青少年");
}
else if (age <= 40)
{
Console.WriteLine("青年");
}
else if (age <= 50)
{
Console.WriteLine("壮年");
}
else
{
Console.WriteLine("老年");
}
}
else
{
Console.WriteLine("输入的年龄不合法");
}
多个if和ifelse的区别?
int aa = 10;
//if (aa > 5) {
// Console.WriteLine("大于5");
//}else if (aa > 6)
//{
// Console.WriteLine("大于6");
//}
if (aa > 5)
{
Console.WriteLine("大于5");
}
if (aa > 6)
{
Console.WriteLine("大于6");
}
//多个if和ifelse的区别:
//1.多个if是所有的if都进行判断,条件成立都会执行
//2.ifelse是只要上面的满足条件,就不再对下面的elseif进行判断
switch
快捷键
:switch + tab
用处:
适用于多个值进行判断
,
或者等值条件的判断
执行过程
:
根据
switch
括号里面的变量值
,
选择与之对应的
case
语句
,
如果没有
case
语句
,
则执行
default
后面
的语句
格式
:
- switch:开关
- ():变量,只要变量存在,即可进入条件语句
- {}:代码块,与case的实例匹配的部分才能输入
- case:值 实例,后面的值是和switch()里面的变量进行匹配
- default:默认 和else相似,当case的实例 都不满足条件,会执行default
注意:
1. break不能省略(中断,打断)
2. case后面的值可以无序,但不能重复
3. 多个
case
可以共用一段代码
4. default可要可不要(都匹配不上,就执行
default
)
5. case后面跟的具体的数据
,
要和
switch()
内的变量的值的类型完全一致
if
和
switch
的异同点:
- 相同点:都可以用于分支判断
- 不同点:if结构适用于某个变量处于某个连续区间的情况,switch结构只用于处理等值条件的判断
switch(day)
{
case 1:
case 2:
Console.WriteLine("星期二");
break;
case 3:
Console.WriteLine("星期三");
break;
default:
Console.WriteLine("输入的数字有误");
break;
}
循环结构
循环四要素:初始条件 判断条件 循环语句 迭代变量
for循环
语法:
for 循环语法格式 :for ( 声明一个循环控制变量 ; 循环执行的条件 ; 循环控制变量修改 ){循环体 ( 需要重复执行的代码块 )}
执行顺序:
①先执行初始条件
int i = 0;
(初始条件只执行一次)
②再执行判断条件
i < 5;
成立:执行③
不成立:⑤
③执行
{
循环语句
}
④执行迭代变量
i++
,然后执行②
⑤退出
for
循环
注意点:
①初始条件可以写到
for
上边 ,但是第一个
;
不能省略
②迭代变量可以写到循环语句的后面,但第二个
;
不能省略
③
for
执行完,变量
i
的值为判断条件的值
注意死循环
一定要保证循环有终止条件
(
没有终止条件的循环
,
称之为死循环
)
- for(int i=0;i<5;i--){} 迭代变量使用不当造成死循环
- for(int i=0;i<5;){} 没有迭代变量造成死循环
- for(int i=0;i==i;i++){} 判断条件使用不当,造成死循环
for循环
for (int i = 0; i < 3; i++)
{
Console.WriteLine("一句话");
}
int j = 0;
for (; j < 3; )
{
j++;
Console.WriteLine("一句话");
}
while循环
语法:
while 循环格式 :while ( 布尔值或者布尔表达式 ){布尔值或者布尔表达式成立时执行的代码块 ( 循环体 )}//while 循环初始化语句在 while 的外面int j = 0 ;while ( j < 3 ) // 判断语句 , 也就是 while 执行的条件 , 条件不满足则停止循环{j ++ ; //{} 除了迭代变量之外都是循环体Console . WriteLine ( " 一句话 " );}
do-while
while (j<10)
{
Console.WriteLine("while执行了");
}
do
{
Console.WriteLine("do_while执行了");
} while (j < 10);
while和的区别
· while执行流程:
1. 判断循环执行的条件,
若值为
true,
则执行循环体
,
改变初始变量
(
迭代变量
)
2. 重复执行第一步,
直到循环条件的值为
false,
停止循环
· do-while执行流程:
1. 首先执行循环体,
改变迭代变量
2. 判断循环条件,
若值为
true,
则执行循环体
,
改变初始变量
(
迭代变量
)
3.
依次重复
,
直到循环条件为
fasle,
停止循环
do-while
最少执行一次
,while
条件不成立的话
,
一次都不会执行
使用场景:
三个循环的使用场景:
- for:最常用的循环,用于循环的次数明确且固定
- while:循环的次数不固定,但是有明确的目标
- dowhile循环:和while相似,至少执行一次