目录
一、分支语句
分支语句又叫选择结构语句,C语言中,选择结构语句可分为if语句和switch语句。
1、if语句
三种形式
(1)单分支结构 if语句
- 语法格式:
if(表达式)
{
语句块;
}
- 如果表达式的值为真,则执行语句块。
(2)双分支结构 if…else语句
- 语法格式:
if(表达式)
{
语句块1;
}
else
{
语句块2;
}
(3)多分支结构 if…else if…else语句
- 用于对多个条件进行判断,从而进行多种不同的处理。
- 语法格式:
if(表达式1) { 语句块1; }
else if(表达式2) { 语句块2; }
else if(表达式3) { 语句块3; }
……
else if(表达式n) { 语句块n; }
else { 语句块m; }
- 例如,从键盘上输入任意一个字符,判断该字符类型,如下
#include<stdio.h>
int main()
{
char c;
printf("Input a character:");
scanf("%c",&c);
if(c>='A'&&c<='Z'||c>='a'&&c<='z')
{
printf("It is an English character.\n");
}
else if(c>='0'&&c<='9')
{
printf("It is a digit character.\n");
}
else
{
printf("It is a other character.\n");
}
return 0;
}
if语句的嵌套
- C语言的if语句下如果还有if语句,则称之为if语句的嵌套。
- 临近原则:else和if成对出现,且总是与最近的未配对的if配对。建议在if后面使用{}将要执行的语句括起来,避免程序代码混乱。
- 语法格式:
if(表达式1)
{
if(表达式2)
{
语句块1
}
else
{
语句块2
}
}
else
{
if(表达式3)
{
语句块3
}
else
{
语句块4
}
}
2、switch
- switch 是另外一种选择结构的语句,用来代替简单的、拥有多个分枝的 if else 语句,基本格式如下:
switch(表达式)
{
case 常量表达式1: 语句块1;
case 常量表达式2: 语句块2;
......
case 常量表达式n: 语句块n;
default: 语句块n+1;
}
- 执行流程:首先计算表达式的值,与各个case后的常量表达式的值比较,当表达式的值与某个常量表达式的值相等时,即执行其后的语句,然后不再进行判断,继续执行后面所有的case语句;如果表达式的值与所有case后的常量表达式均不相同,则执行default后的语句。
- 注意:表达式的值为整数、字符、枚举类型;case后面的常量表达式只起标号作用,不起条件判断作用,即只是开始执行处的入口标号,一般情况下需要使用break语句跳出switch语句。
二、循环语句
1、while语句
- 形式:while(表达式) { 语句块(即循环体); }
- 特点:先判断条件表达式,后执行循环体语句。表达式的值为真(以非0值表示)时,就执行循环语句;为假(以0表示)时,就不执行循环体语句,退出循环。
- 例如:求1.01^365
#include<stdio.h> int main() { int i=1; float s=1.0; while(i<=365) { s=s*1.01; i++; } printf("1.01^365=%.2f\n",s); return 0; } //运行结果为 1.01^365=37.78
2、do…while语句
- 形式:do { 语句; } while(表达式);
- 特点:先无条件地执行循环体,然后判断循环条件是否成立
- 例如:求1+2+3+...+100
#include<stdio.h> int main() { int i=1,sum=0; do { sum=sum+i; i++; } while(i<=100); printf("sum=%d\n",sum); return 0; } //运行结果为:sum=5050
3、for语言
- 一般形式:for(表达式1;表达式2;表达式3) { 语句; }
- 例如上题求1+2+3+...+100
#include<stdio.h> int main() { int i=1,sum=0; for(i=1;i<=100;i++) sum=sum+i; printf("sum=%d\n",sum); return 0; } //运行结果为:sum=5050
- 注意:for语句中,三个表达式均可省略,但分号不可省略,例如for( ; ; ); //相当于while(1)语句;表达式2一般是关系表达式(如i<=100)或逻辑表达式(如a<b && x<y),但也可以是数值表达式或字符表达式,只要其值为非0.就执行循环体。