目录
if(…) {…} else if(…) {…} … else if(…) {…} else {…}
switch() {case …: …; case …: …; … default: …;}
C语言有九种控制语句。 可分成以下三类:
1. 条件判断语句
if语句、switch语句;
2 .循环执行语句
do while语句、while语句、for语句;
3. 转向语句
break语句、goto语句(此语句尽量少用,因为这不利结构化程序设计,滥用它会使程序流程无规律、可读性差)、continue语句、return语句。
1. 条件判断语句
if(…) {…}
1.一般形式:
if (表达式) {语句;}
表达式:
a,用非 0 值表示真,用 0 表示假;
b,if(flag) 相当于 if(flag!=0);
c,浮点数无法与 0 比较,只能用近似的值比较;例: 1e-6 等于1x10的-6次方可以看成0来使用;
2.用于单分支选择结构;
3.如含有交叉关系,使用并列的if语句;
例1:输出两个整数中的最大值
#include <stdio.h>
void main()
{
int a,b;
printf("请输入两个整数:");
scanf("%d %d",&a,&b);
if(a>b)
{
printf("max = %d\n",a);
}
if(a<b)
{
printf("max = %d\n",b);
}
}
if(…) {…} else {…}
- 一般形式:
if(表达式) {语句1; } else { 语句2;}
- 用于双分支控制的条件语句;
- 用于非此即彼的关系时;
例2:输出两个整数中的最大值
例2关于对于非法字符的检查与处理
#include <stdio.h>
void main()
{
int a,b,max,data;
printf("Input a,b:");
data = scanf(" %d,%d",&a,&b);/*记录scanf()的返回值;*/
if(data!=2)/*根据scanf()的返回值判断输入数据个数或者格式是否错误*/
{
printf("格式输入错误!");
fflush(stdin);/*清除输入缓冲区中的错误内容(fflush()可能带来可移植性的问题)*/
}
else
{
max = a>b?a:b;/*三目运算符(a>b值为真则输出a的值,反之输出b的值)*/
printf("%d\n",max);
}
}
if(…) {…} else if(…) {…} … else if(…) {…} else {…}
-
一般形式:
if(表达式1) { 语句1;}
else if(表达式2) {语句2;}
…
else if(表达式n){语句n;}
else{语句n+1;} -
用于多分支的控制的条件语句;
例3:判断字符
#include <stdio.h>
void main()
{
char ch;
printf("请输入一个字符:");
ch = getchar();/*getchar、putchar专门用于字符输入输出;
getchar()写法上要写为 变量 = getchar();
putchar()用法为putchar(变量);
putchar('\n')输出一个控制符;
putchar('字母/字符');输出字母/字符;
*/
if(ch<=31)
{
printf("这是一个控制字符或通讯专用字符!\n");
}
else if(ch >= '0' && ch <= '9')
{