2.3 C控制语句:分支和跳转2
循环辅助:continue和break
continue语句 跳出本次循环
例如:
# include <stdio.h>
main()
{
int i ;
for (i=0; i<10; i++)
{
if(i==4)
{
continue;//当 i==4 的时候跳过,所以输出结果没有4。
}
printf(“%d “, i);
}
}
输出结果
0 1 2 3 5 6 7 8 9
运行分析
for (i=0; i<10; i++) i赋值为1判断i是否小于10如果满足继续执行if(i==4)如果i等于4则执行continue;执行完continue以后就跳过一次printf(“%d “, i);否则就直接执行printf(“%d “, i);,然后执行i++然后再进行i是否小于10的判断如果不满足就跳出循环否则就继续执行循环。
break语句 结束包含break的循环 注意如果break;在多层嵌套中只跳出其中的一层,不是跳出全部
例如:
include <stdio.h>
main()
{
int i ;
for (i=0; i<10; i++)
{
if(i==4)
{
break;//当 i==4 的时候结束循环,所以输出结果没有4 及以后的数字。
}
printf(“%d “, i);
}
}
输出结果
0 1 2 3
运行分析
for (i=0; i<10; i++) i赋值为1判断i是否小于10如果满足继续执行if(i==4)如果i等于4则执行break;执行完break;就结束for循环如果不满足if(i==4)就直接执行printf(“%d “, i);,然后执行i++然后再进行i是否小于10的判断如果不满足就跳出循环否则就继续执行循环。
多重选择:switch case
条件语句if else语句很容易进行二选一 但在进行多重选择的时候就不是那么的方便 所以出现了 switch case 语句 来让我们看一下具体怎么用把
例如:
include “stdio.h”
main()
{
int num;
scanf(“%d”,&num);
switch(num)
{
case 1: putchar(‘A’);
break;
case 2: putchar(‘B’);
break;
case 3: putchar(‘C’);
break;
case 4: putchar(‘D’);
break;
default:
putchar(‘没有结果’);
}
printf(“\n”);
}
运行结果
如果输入的是1输出的结果就是A输入的是2输出的结果就是B输入的是3输出的结果就是C输入的是4输出的结果就是D如果输入的数不是1 2 3 4就会输出没有结果
运行分析
从键盘输入一个数赋值给了num的值与case语句冒号:的值对应,如果对应上了就执行这行语句然后因为case语句后面有break所以直接跳出switch语句 如果与所有的case语句冒号:的值都没有对应上就执行default这行语句。
goto语句
goto有两部分组成:goto和标签。标签名必须遵循变量命名原则 如下所示
gotu p2;
想让这条语句正常执行就必须有一个函数被p2打上标签例如
p2: printf(“这是一个输出函数”);
避免使用go to语句
如果你想知道具体是为什么请参考荷兰著名计算机科学家E.W.Dijkstra于1968年提出的,在一封给ACM编辑的信《go to statement considered harmful》
简单的说就容易把逻辑弄乱且难以理解