-
语句
C语言中由一个分号 ; 隔开的就是一条语句
例:printf("hehe");
;//空语句
1.分支语句(选择结构)
1> if 语句 (一般表现为三种形式)
语法结构:
- if(表达式)
语句;
- if(表达式)
语句1;
else
语句
2
;
- if(表达式1)
语句1;
else if
(
表达式
2
)
语句
2
;
else
语句
3
;
注意:
悬空else
#include <stdio.h>
int main()
{
int a = 0;
int b = 2;
if(a == 1)
if(b == 2)
printf("hehe\n");
else
printf("haha\n");
return 0; }
上例代码中的else最然说是与第一个if对齐,但是在程序的运行当中会将这个else采取就近原则,也就是说这个else会和第二个if相匹配,所以将代码改正为:
//适当的使用{}可以使代码的逻辑更加清楚。
//代码风格很重要
#include <stdio.h>
int main()
{
int a = 0;
int b = 2;
if(a == 1)
{
if(b == 2)
{
printf("hehe\n");
}
}
else
{
printf("haha\n");
}
return 0; }
2> switch 语句 (switch语句也是一种分支语句。 常常用于多分支的情况。)
switch(整型表达式)
{
语句项;
}
语句项:是一些case语句:
case 整形常量表达式:
语句
;
例:
#include <stdio.h>
int main()
{
int day = 0;
switch(day)
{
case 1:
printf("星期一\n");
break;
case 2:
printf("星期二\n");
break;
case 3:
printf("星期三\n");
break;
case 4:
printf("星期四\n");
break;
case 5:
printf("星期五\n");
break;
case 6:
printf("星期六\n");
break;
case 7:
printf("星期天\n");
break;
}
return 0; }
需求变了:
1.
输入
1-5
输出的是
“weekday”;
2.
输入
6-7
输出
“weekend”
#include <stdio.h>
//switch代码演示
int main()
{
int day = 0;
switch(day)
{
case 1:
case 2:
case 3:
case 4:
case 5:
printf("weekday\n");
break;
case 6:
case 7:
printf("weekend\n");
break;
}
return 0; }
编程好习惯:
在最后一个 case 语句的后面加上一条 break语句。 (之所以这么写是可以避免出现在以前的最后一个 case 语句后面忘了添加 break语句)。
在每个 switch 语句中都放一条default子句是个好习惯,甚至可以在后边再加一个 break 。
default
子句:
表达的值与所有的
case
标签的值都不匹配时直接执行default字句
写在任何一个
case标签可以出现的位置。
每个switch语句中只能出现一条default子句。
但是它可以出现在语句列表的任何位置,而且语句流会像贯穿一个
case
标签一样贯穿
default
子句。
2.循环语句
1> while语句
//while
语法结构
while
(
表达式
)
循环语句;
例:在屏幕上打印1-10的数字。
#include <stdio.h>
int main()
{
int i = 1;
while(i<=10)
{
printf("%d ", i);
i = i+1;
}
return 0; }
break:
其实在循环中只要遇到break,就停止后期的所有的循环,直接终止循环。 所以:while中的break是用于永久终止循环的。
continue:
continue是用于终止本次循环的,也就是本次循环中continue后边的代码不会再执行,而是直接 跳转到while语句的判断部分。进行下一次循环的入口判断
2> for语句
语法:
for(表达式1;表达式2;表达式3)
循环语句;
表达式
1
表达式
1
为
初始化部分
,用于初始化循环变量的。
表达式
2
表达式
2
为
条件判断部分
,用于判断
循环时候终止。
表达式
3
表达式
3
为
调整部分
,用于循环条件的调整。
例:使用for循环 在屏幕上打印1-10的数字。
#include <stdio.h>
int main()
{
int i = 0;
//for(i=1/*初始化*/; i<=10/*判断部分*/; i++/*调整部分*/)
for(i=1; i<=10; i++)
{
printf("%d ", i);
}
return 0; }
对比一下for循环和while循环:
while
循环中依然存在循环的三个必须条件,但是由于风格的问题使得三个部分很可能偏离较远,这样查找修改就不够集中和方便。所以,for
循环的风格更胜一筹。
for
循环使用的频率也最高。
for
语句的循环控制变量:
1.
不可在
for
循环体内修改循环变量,防止
for
循环失去控制。
2.
建议
for
语句的循环控制变量的取值采用
“
前闭后开区间
”
写法
3> do while语句
语法:
do
循环语句;
while
(
表达式
);
特点 :
循环至少执行一次,使用的场景有限,所以不是经常使用。