C语言循环与分支
tips:
0为假,非0为真 符合表达式为真,不符合为假 |
循环语句
for循环
一般为
for(表达式1;表达式2;表达式3)
{
循环体
}
表达式1 只执行一次, 循环是在 表达式2 表达式3 和循环体之间进行
其中
表达式1 是循环变量初值,
表达式2 是判断条件,
表达式3 是循环变量增值(减值)
while循环
while(表达式)
{
循环体
};
当表达式为 真 时,执行循环体, 直到表达式为 假,退出循环
故 表达式比循环体多执行一次
do while循环
do
{
循环体
}
while(表达式);
无论表达式是否为真,都会执行一次循环体, 这是和 while 的区别 ,剩下基本无异
嵌套循环
两层循环及以上 即嵌套循环
最常用即双重for循环
for(int i=0;i<10;i++)// 外层执行1次
{
for(int j=0;j<n;j++)// 内层执行n次
{
语句;
}
}
`````````````````````````````````````````````````````````````````````````````````````````````````````````````
分支语句
if 分支语句
if(表达式);
if (flag) // flag如果为真 执行A语句
A语句;
单条语句时 可不加大括号
if else 分支语句
if(表达式)…esle
if (flag) // 如果 flag 为真 执行A语句
A 语句;
else // 否则 执行B语句
B 语句;
if else if … 分支语句
if(表达式)…else if(表达式)…else
if (flag > 0) //如果 flag 大于0 执行A语句
A语句;
else if (flag < 0) //如果 flag 小于0 执行B语句
B语句;
else //否则 执行C语句 即 flag 等于0
C语句;
嵌套分支
if else 可以嵌套
if (flag)
{
if(flag == 0)
{
printf("嵌套分支\n")
}
else
{
B语句;
}
}
else
{
if(flag < 0)
{
C语句;
}
else
{
D语句;
}
}
switch 分支语句
switch(n){…}
switch 由 case(表达式N) 以及 default 组成
n等于多少 就进入case N 对应语句
case的n只能为 整数常量 或者 字符常量
代码如下
switch(num=1)//
{
case 1: //num 等于1进入此分支
A语句;
break;//退出
}
switch分支 需要设置 break 退出
不设置就会一直往下执行 直到遇到 break 或 执行完
switch(num=1)//
{
case 1: //进入case 1
A语句;
//但因没有break 继续执行 case 2
case 2:
B语句;
case 3:
break;//直到执行到case 3 遇到了break 退出
case 4:
B语句;
break;
default:
break;
}
default 是当 n 不等于case N中任何一个 就会执行此项
switch(num=10)
{ //num等于10 没有case 匹配
case 1:
A语句;
break;
case 2:
B语句;
break;
case 3:
C语句;
break;
case 4:
D语句;
break;
default: //执行default
printf("意料之外\n");
break;
}
switch 嵌套
switch 也可以嵌套 并且case default可以不按照顺序排
switch(n)
{
case 4:
printf("外分支");
switch(m)
{
case 6:
printf("内分支");
break;
}
break;
default :
break;
case 3:
break;
}