目录
2.3.2 do while语句中的break与continue
学习完C语言基础篇,该踏上下一步台阶了。
引:什么是语句?
C语言语句可分为五类:
1.表达式语句
2.函数调用语句
3.控制语句
4.符合语句
5.空语句
本篇就主要讲解为控制语句,其用于控制程序的执行流程,以实现程序的各种结构方式,由特定符号表示,共九种,分为以下三类:
(1)条件判断语句(分支语句):if语句、switch语句;
(2)循环执行语句:do while语句,while语句,for语句;
(3)转向语句:break语句,goto语句,continue语句,return语句。
注:这里的语句更趋向于结构,我们一般所说的语句是指由一个分号;分隔的就是一个语句。
一、分支语句
分支语句在基础篇中就有所提及,它可以译为“要么...要么...”,下面咱们进一步学习。
1.1 if语句
if语句是分支语句中的一种,它的基本语法结构如下,
代码1_1,if语句的结构:
①
if(表达式)
语句;
②
if(表达式)
语句;
else
语句;
③
if(表达式1)
语句1;
else if(表达式2)
语句2;
else if(表达式3)
语句3;
......
else
语句n;
if结构比较简单,直接翻译就是“如果表达式成立,即条件为真(非0),就执行下面的语句;如果表达式不成立,即条件为假(0),就执行else if 或者else 或者 跳出该分支语句”。
比如下列示例,代码1_2,输入成绩并判断是否合格:
#include<stdio.h>
int main()
{
int score=0;
scanf("%d",&score);
if(score >= 0 && score < 60)
printf("不合格\n");
else if(score >= 60 && score <= 100)
printf("合格\n");
return 0;
}
说明:
代码1_2就是使用的分支语句,如果分数小于60,那么打印“不合格”;如果分数大于等于60,那么打印“合格”。
与此同时,在if语句中表达式判定为假时,即不满足if 的表达式,然后在其所对应的else if 或者 else 中就可以排除if 的表达式,则代码1_2可改为:
#include<stdio.h> int main() { int score=0; scanf("%d",&score); if(score >= 0 && score < 60) printf("不合格\n"); else if(score <= 100) printf("合格\n"); return 0; }
正如以上代码,当输入score值大于60小于等于100时,程序执行在判断if 的表达式为假(表示score值一定大于60)后,进入else if ,此时就不必再判断score值是否大于60了。
补;
C语言中,表示score大于0小于60不能用:0<score<60,该式不符合逻辑;
而是用:score>0 && score<60来表示,其中 && 为并且的意识,同样还有 || 符号表示或者。
1.1.2 代码块
如果条件成立,需要执行多条语句,应该使用代码块,即应将多条语句用大括号{ }括住。
下列代码1_3,重要的事说三遍:
#include<stdio.h>
int main()
{
int score=0;
scanf("%d",&score);
if(score >= 0 && score < 60){
printf("不合格\n");
printf("不合格\n");
printf("不合格\n");
}
else if(score <= 100){
printf("合格\n");
printf("合格\n");
printf("合格\n");
}
return 0;
}
说明:
(1)由大括号{ }引的部分即称为代码块,只要语法合理均可化为代码块;
(2)默认情况下,if 以及else、else if后只能有一条语句,否则会有编译问题;
(3)如果if 以及else、else if后有多条语句,则需要使用代码块;
1.1.3 if与else的对应规则
见下列代码1_4:(试问程序输出什么?)
#include<stdio.h>
int main()
{
int a=0;
int b=2;
if(1==a)
if(1==b)
printf("hello");
else
printf("world");
return 0;
}
程序执行结果: