目录
一、顺序结构
二、选择结构
if语句
switch语句
三、循环结构
while语句
for语句
do while语句
C语⾔是结构化的程序设计语⾔,这⾥的结构指的是顺序结构、选择结构、循环结构。也就是说在C语言所有的代码都是这三种结构。
顺序结构的程序设计是最简单的,只要按照解决问题的顺序写出相应的语句就行,它的执行顺序是自上而下,依次执行。如下图所示,这里不再赘述。
#include
int main()
{
int a = 0;
printf("a = %d\n",a);
a = 1;
printf("a = %d\n",a);
return 0;
}
选择结构用于判断给定的条件,根据判断的结果判断某些条件,根据判断的结果来控制程序的流程。
选择结构的语句称为选择语句或分支语句
C语言中的选择结构通过if语句和switch语句来实现
if语句的语法形式
一、单分支控制选择语句——单独的if 跟单条语句
if(表达式)
语句;
if语句的实现逻辑
表达式成⽴(为真),则语句执⾏,表达式不成⽴(为假),则语句不执⾏
在C语⾔中,0为假,⾮0表⽰真,也就是表达式的结果如果是0,则语句不执⾏,表达式的结果如果是 不是0,则语句执⾏
注意:if后面不带大括号时,只能跟一条语句,多出的语句不再被if控制
例⼦:输⼊⼀个整数,判断是否为奇数
#include
int main()
{
int num = 0;
scanf("%d", &num);
if(num % 2 == 1)
printf("%d 是奇数\n", num);
return 0;
}
二、单分支控制选择语句——if后面跟多条语句时,需要用大括号括起来才有效
if(表达式)
{
语句1;
语句2;
……
}
例⼦:输⼊⼀个整数,判断是否为奇数
#include
int main()
{
int num = 0;
scanf("%d", &num);
if(num % 2 == 1)
{
printf("%d 是奇数", num);
printf("\n");
}
return 0;
}
三、双分支控制选择语句——用于非此即彼的关系时
if(表达式)
{
……
}
else
{
……
}
例⼦:输⼊⼀个整数,并进行判断,如果是奇数,输出奇数;否则输出偶数
#include
int main()
{
int num = 0;
scanf("%d", &num);
if(num % 2 == 1)
{
printf("%d 是奇数\n", num);
}
else
{
printf("%d 是偶数\n", num);
}
return 0;
}
四、多分支的控制的选择语句——用于复杂的选择结构中
if(表达式)
{
……
}
else if(表达式)
{
……
}
else
{
……
}
⽐如: 输⼊⼀个整数,如果是正数,输出正数;如果不是正数则输出:负数;否则,输出0.
#include
int main()
{
int num = 0;
scanf("%d", &num);
if(num>0)
{
printf("%d 是正数\n", num);
}
else if(num<0)
{
printf("%d 是负数\n", num);
}
else
{
printf("0\n");
}
return 0;
}
switch 语句是⼀种特殊形式的if...else... 结构,⽤于判断条件有多个结果的情况。它把多重 的 else if 改成更易⽤、可读性更好的形式。
语法形式;
switch(整型表达式)
{
case 常量1:语句1;
case 常量2:语句2;
…
case 常量n:语句n;
default: 语句n+1;
}
注意:
1.(表达式)只能是char型或者int型;
2.case 后面至少要有一个空格,常量后面是冒号
3.每⼀个 case 语句中的代码执⾏完成后,需要加上 break ,才能跳出这个switch语句
4.在 switch 语句中 case 语句和 default 语句是没有顺序要求的,只要你的顺序是满⾜实 际需求的就可以。 不过我们通常是把 default ⼦句放在最后处理的
例如:输⼊任意⼀个整数值,计算除3之后的余数
#include
int main()
{
int n = 0;
scanf("%d", &n);
switch(n%3)
{
case 0:
printf("整除,余数为0\n");
break;
case 1:
printf("余数是1\n");
break;
case 2:
printf("余数是2\n");
break;
}
return 0;
}
循环结构是指在程序中需要反复执行某个功能而设置的一种程序结构。
它由循环体中的条件,判断进行执行某个功能还是退出循环。
根据判断条件,循环结构又可细分为以下两种形式:先判断后执行的循环结构和先执行后判断的循环结构。
C语言中先判断后执行的循环结构为while语句和for语句,先执行后判断的循环结构为do while语句,下面逐次介绍
while 语句的语法结构和 if 语句⾮常相似
⾸先上来就是执⾏判断表达式,表达式的值为0,循环直接结束;表达式的值不为0,则执⾏循环语 句,语句执⾏完后再继续判断,是否进⾏下⼀次判断
例如:在屏幕上打印1~10的值
#include
int main()
{
int i = 1;
while(i<=10)
{
printf("%d ", i);
i = i+1;
}
return 0;
}
for 循环是三种循环中使⽤最多的, for 循环的语法形式如下
for(表达式1;表达式2;表达式3)
{
循环语句;
}
说明:
表达式1⽤于循环变量的初始化
表达式2⽤于循环结束条件的判断
表达式3⽤于循环变量的调整
for循环的执行过程
⾸先执⾏ 表达式1 初始化循环变量,接下来就是执⾏ 表达式2 的判断部分, 表达式2 的结果如果 ==0,则循环结束; 表达式2 的结果如果!=0则执⾏循环语句,循环语句执⾏完后,再去执⾏表 达式3 ,调整循环变量,然后再去 表达式2 的地⽅执⾏判断, 表达式2 的结果是否为0,决定循环是否继 续。
整个循环的过程中,表达式1初始化部分只被执⾏1次,剩下的就是表达式2、循环语句、表达式3在循 环。
例如:在屏幕上打印1~10的值
#include
int main()
{
int i = 0;
for(i=1; i<=10; i++)
{
printf("%d ", i);
}
return 0;
}
在循环语句中 do while 语句的使⽤最少,它的语法如下
do
{
语句;
} while(表达式);
注意
while 和 for 这两种循环都是先判断,条件如果满⾜就进⼊循环,执⾏循环语句,如果不满⾜就跳 出循环; ⽽ do while 循环则是先直接进⼊循环体,执⾏循环语句,然后再执⾏ while 后的判断表达式,表 达式为真,就会进⾏下⼀次,表达式为假,则不再继续循环。
do while循环的执行过程
在 do while 循环中先执⾏“语句”,执⾏完语句,在去执⾏“判断表达式”,判断表达式的 结果是!=0,则继续循环,执⾏循环语句;判断表达式的结果==0,则循环结束。所以在 do while 语句中循环体是⾄少执⾏⼀次的,这是 do while 循环⽐较特殊的地⽅。
练习:在屏幕上打印1~10的值
#include
int main()
{
int i = 1;
do
{
printf("%d ", i);
i = i + 1;
}while(i<=10);
return 0;
}