目录
引言:
转向语句在循环语句和条件判断语句中有应用并有一定的讲解
控制语句
控制语句用于控制程序的执行过程,以实现程序的各种结构方式(C语言支持三种结构:顺序结构,选择结构,循环结构),它们由特定的语句定义符组成,C语言有9种控制语句。
可分为以下三类:
1.条件判断语句也叫分支语句:if语句,switch语句。
2.循环执行语句:do while语句,while语句,for语句
3.转向语句:break语句,goto语句,continue语句,return语句
接下来将会对控制语句进行讲解
一.条件判断语句
1.if语句
if (条件表达式)
{
// 条件为真时执行的代码
} else
{
// 条件为假时执行的代码
}
if (条件表达式1)
{
// 条件1为真时执行的代码
}
else if (条件表达式2)
{
// 条件1为假且条件2为真时执行的代码
}
else
{
// 上述条件都不为真时执行的代码
}
2.实例
请问这段代码输出的是什么
什么都没有输出
因为else与最近if匹配,所以实际的代码应该是这样的👇
2.对if中return的理解
int test()
{
int a;
scanf("%d", &a);
if (a > 5)
{
return 1;
}
else
{
return 0;
}
printf("hehe3\n");
}
int main()
{
printf("hehe1\n");
int ret = test();
printf("hehe2\n");
printf("%d", ret);
return 0;
}
其中这个代码永远不会执行👇,因为函数调用后,进入函数内部,只要碰到return就会把值返回到函数调用的地方
实例:输入一个数,判断是奇数还是偶数
int main()
{
int num = 0;
scanf("%d",&num);
if (num % 2 == 0)
{
printf("偶数");
}
else
{
printf("奇数");
}
return 0;
}
程序运行👇
2.switch语句理解
switch语句格式
其中constant是常量
switch (expression)
{
case constant1:
// 如果 expression 的值等于 constant1,则执行以下代码块
// ...
break; // 终止 switch 语句,防止执行后续的 case
case constant2:
// 如果 expression 的值等于 constant2,则执行以下代码块
// ...
break; // 终止 switch 语句
// ...
// 可以有任意数量的 case
default:
// 如果 expression 的值不等于任何一个 case 中的常量,则执行以下代码块
// ...
// 这个部分是可选的
}
代码实例1,输入一个数字,输出一个星期:
int main()
{
int num = 0;
scanf("%d", &num);
switch (num)
{
case 1:
printf("星期一");
break;
case 2:
printf("星期二");
break;
case 3:
printf("星期三");
case 4:
printf("星期四");
case 5:
printf("星期五");
case 6:
printf("星期六");
case 7:
printf("星期天");
default:
printf("超出范围,请重新输入");
break;
}
return 0;
}
代码示例2:输出工作日或休息日。
int main()
{
int num = 0;
scanf("%d", &num);
switch (num)
{
case 1:
printf("星期一\n");
printf("星期二\n");
printf("星期三\n");
printf("星期四\n");
printf("星期五\n");
break;
case 0:
printf("星期六\n");
printf("星期天\n");
break;
default:
printf("超出范围,请重新输入\n");
break;
}
return 0;
}
代码运行下:
注意:switch后边必须是整形,case后边也必须是整形
嵌套使用
结果输出: m=5,n=3
这是第一个switch
这是第二个switch:
按顺序一算结果就出来了,只要没遇到break,它会一直往下执行
二.循环语句
1.while语句
格式:
while(//条件)
{
//循环的内容
}
continue和break的用法
break
用于退出整个循环或switch
语句。continue
用于跳过当前循环的其余部分,直接进入下一次迭代。
题目
1.break在while中的应用
int main()
{
int i = 1;
while (i < 10)
{
if (i == 5)
{
break;
}
printf("%d ", i);
i++;
}
return 0;
}
屏幕上输出的是👇
1,2,3,4
因为如果 i ==5 ,进入if语句中,接触到break,从而终止了循环,所以屏幕上打印的是,1,2,,3,4
2.continue在while中的应用
int main()
{
int i = 1;
while (i < 10)
{
if (i == 5)
{
continue;
}
printf("%d ", i);
i++;
}
return 0;
}
这个程序的结果依旧是1,2,3,4
因为如果 i==5,就会进入if语句中,然后遇到continue,最后跳转到while语句中,因次i一直等于5,一直continue,所以屏幕打印的是1,2,3,4.
2.for循环
for(表达式1;表达式2;表达式3)
{
循环的内容
}
实例:输出1到10的数字
int main()
{
int i = 0;
for (i = 1; i <=10; i++)
{
printf("%d ", i);
}
return 0;
}
for循环中continue中的应用
int main()
{
int a;
for (a = 1; a <= 10; a++)
{
if (a == 5)
{
continue;
}
printf("%d ", a);
}
return 0;
}
请问:这输出的是什么
为什么呢
因为当a==5时会进入if语句执行continue,会跳转到if语句中,然后因为a++,a的值等于6了
for循环的嵌套
int main()
{
int i = 0;
int j = 0;
for (i = 0; i < 3; i++)
{
for (j = 0; j < 3; j++)
{
printf("hehe\n");
}
}
return 0;
}
执行几次hehe,一共执行9次hehe
解释
先进入第一次for循环,然后就第二次for循环,当第二次for循环结束时,一共打印了三次hehe,然后跳转到第一个for循环,此时i=1,然后进入到第二层for循环,此时j=0,第二层for循环执行完,又打印了三次hehe,就这样下去,直到不满足第一层for循环退出程序
for语句中放入俩个条件
int main()
{
int x, y;
for (x = 0, y = 0; x < 2 && y < 5; x++,y++)
{
printf("hehe\n");
}
return 0;
}
3.do-while循环
循环执行至少一次
注意while后面加上;
先执行循环语句,然后再判断条件
int main()
{
int i = 1;
do
{
printf("%d ", i);
i++;
} while (i<=10);
return 0;
}
代码运行
三.goto语句
goto label; // 跳转到指定标签
// 标签定义
label:
// 一些代码
int main()
{
again:
printf("袁浩展最帅\n");
printf("袁浩展是傻鸟\n");
printf("袁浩展是男神\n");
goto again;
return 0;
}
程序运行👇
结语:限于水平,本篇文章不足之处在在所难免,若有问题,请大家指正,谢谢大家!
您的支持是我前进的最大动力