C语言是结构化的程序设计语言,这里的结构主要包括顺序结构、分支结构和循环结构,在接下来的文章中,我将为你介绍这几种结构是如何通过代码来实现的。
分支结构
if 语句
if语句的语法结构如下:
if(表达式)
语句
若表达式为真(非0),则语句执行,若表达式为假(为0),则语句不执行。
例:输入一个整数,判断是否为偶数
#include<stdio.h>
int main (){
int num=0;
scanf("%d",&num);
if(num%2==0)
printf("%d是偶数",num);
return 0;
}
else
如果一个数不是偶数,那么就是奇数了,那么有办法用代码来表示这种关系吗?这时候就需要用到if…else…语句了。
其语法结构如下:
if(表达式)
语句1
else
语句2
因此,我们可以实现一个判断奇偶的代码:
#include<stdio.h>
int main (){
int num=0;
scanf("%d",&num);
if(num%2==0)
printf("%d是偶数",num);
else
printf("%d是奇数",num);
return 0;
}
if…else…语句还有许多其他妙用,大家可以自己在编写程序的过程中去慢慢感受。
switch 语句
除if语句外,c语言还提供了switch语句来实现分支结构,其语法结构如下:
switch(表达式){
case 条件1:语句1
case 条件2:语句2
case 条件3:语句3
default:语句4
}
在上面代码中,根据表达式不同的值,执行相应的case分支。如果找不到对应的值,就执行default分支。
注意
- switch后的表达式必须是整型表达式。
- case后的值,必须是整形常量表达式。
例: 制作一个传送器
#include<stdio.h>
int main(){
int num=0;
scanf("%d",&num);
printf("请选择你要前往的地区")
switch(num)
case 1:
printf("传送到蒙德");
break;
case 2:
printf("传送到璃月");
break;
case 3:
printf("传送到稻妻");
break;
case 4:
printf("传送到须弥");
break;
case 5:
printf("传送到枫丹");
break;
default:
printf("前面的区域,以后再来探索吧。");
break;
}
return 0;
}
如此,我们便能更方便的实现多个分支。
需要注意的是,在每个case语句执行完成后,我都加上了break,因为这样才能跳出这个switch语句,大家可以尝试下不加break的结果,具体在代码中是否要加入break需要视其目的而定。
循环结构
while循环
while语句的语法结构如下:
while(表达式)
语句
当表达式结果为真时,循环执行下方语句,直到表达式结果为假,退出循环。
例:打印1-10的数字
#include<stdio.h>
int main (){
int num=1;
while(num<=10){
printf("%d ",num);
num++;
}
return 0;
}
for循环
for循环的语法结构如下:
for(表达式1;表达式2;表达式3)
语句
- 表达式1用于循环变量的初始化
- 表达式2用于循环结束条件的判断
- 表达式3用于循环变量的调整
例:打印1-10的数字
#include<stdio.h>
int main (){
int num=0;
for(num=1;num<=10;num++){
printf("%d ",num);
}
return 0;
}
大家可以自行比较while循环与for循环各自的优劣之处 。
do…while循环
do…while循环的语法结构如下:
do
语句
while(表达式)
一般do…while循环使用在循环体至少被执行一次的场景下。
例:打印1-10的数字
#include<stdio.h>
int main (){
int num=1;
do
{
printf("%d ",num);
num++;
}
while(num<=10);
return 0;
}
break与continue语句
如果你想在循环执行的过程中提前终止循环,那么就需要用到break与continue语句。
- break的作用是用于永久的终止循环,只要break被执行,直接就会跳出循环。
- continue的作用是跳过本次循环continue后边的代码,其在for循环与while循环中有所差异。
利用上方所写的代码做个演示
#include<stdio.h>
int main (){
int num=1;
while(num<=10){
if(num==5)
continue;
printf("%d ",num);
num++;
}
return 0;
}
#include<stdio.h>
int main (){
int num=0;
for(num=1;num<=10;num++){
if(num==5)
continue;
printf("%d ",num);
}
return 0;
}
运行以上代码后可以发现其有所差异,大家可以自行尝试,而break语句的使用较为简单,这里便不做演示了。
到此,我们便了解了C语言中常见的分支结构与循环结构,让我们利用它们把代码变得更加灵活吧!