C语言常见的控制流有三种结构 分别是:顺序结构,选择结构,循环结构。
1,顺序结构
顾名思义,所谓顺序结构就是程序由上到下顺序执行,例如我们的第一个hello,world程序。
#include<stdio.h>
void main()
{
printf("Hello,World!");
}
2,选择结构
选择结构常用来处理多分支问题,常用的语句有 if 和 switch
if 语句基本语法为
if(条件语句){
执行语句
} else if(条件语句)
执行语句,,,
例子如下:
#include <stdio.h>
int main(int argc, char *argv[])
{
int x ;
scanf("%d",&x);
if(x> -5 && x< 0){
printf("y=%d\n",x);
} else if(x==0){
printf("y=%d\n",x-1);
} else if(x>0 && x<10){
printf("y=%d\n",x+2);
}
return 0;
}
在分支过多时,if else语句可读性将会变差,同时过长的嵌套会导致程序执行效率变低。这时候就需要用到switch 语句。
switch 语句基本结构为
switch(表达式)
case 常量 语句1
case 常量 语句2 break(可选)
...
default : 语句 xx Friday
比如下面这个问题 :输入一个1-7数字输出其对应的星期和之后的所有星期的英文单词,比如输入5 输出 Friday Saturday,Sunday。
#include <stdio.h>
int main(void){
int a;
printf("input integer number: ");
scanf("%d",&a);
switch (a){
case 1:printf("Monday\n");
case 2:printf("Tuesday\n");
case 3:printf("Wednesday\n");
case 4:printf("Thursday\n");
case 5:printf("Friday\n");
case 6:printf("Saturday\n");
case 7:printf("Sunday\n");
default:printf("error\n");
}
return 0;
}
如果只想输入对应的星期,那么我们需要用到break 语句:
#include <stdio.h>
int main(void){
int a;
printf("input integer number: ");
scanf("%d",&a);
switch (a){
case 1:printf("Monday\n");
break;
case 2:printf("Tuesday\n");
break;
case 3:printf("Wednesday\n");
break;
case 4:printf("Thursday\n");
break;
case 5:printf("Friday\n");
break;
case 6:printf("Saturday\n");
break;
case 7:printf("Sunday\n");
break;
default:printf("error\n");
}
return 0;
}
3,循环结构
循环结构一般用 while 和for 来实现,由于for 把条件和判断写在一起可读性要好,所以一般情况下使用for 居多
例子 打印菱形,输入一个数打印仪器为底的菱形
#include<stdio.h>
int main(){
int n,i,j;
printf("---------开始打印符号---------\n");
printf("请输入数字:");
scanf("%d",&n);
for(i=1; i<=n; i++){
for(j=1; j<=n-i; j++){
printf(" ");
}
for(j=n-i+1; j<n+i; j++){
printf("*");
}
printf("\n");
}
for(i=n-1; i>=1; i--){
for(j=1; j<=(n-i); j++){
printf(" ");
}
for(j=n-i+1; j<n+i; j++){
printf("*");
}
printf("\n");
}
printf("---------结束打印符号---------\n");
return 0;
}