C语言if语句的基本用法

C语言if语句的基本用法

一、if(…) {…}

1.一般形式: if (表达式) {语句;}

表达式: a,用非 0 值表示真,用 0 表示假; b,if(flag) 相当于 if(flag!=0); c,浮点数无法与 0 比较,只能用近似的值比较;例: 1e-6 等于1x10的-6次方可以看成0来使用;

2.用于单分支选择结构; 3.如含有交叉关系,使用并列的if语句;

例1:输出两个整数中的最大值

#include

int main()

{

int a,b;

printf("请输入两个整数:");

scanf("%d %d",&a,&b);

if(a>b)

{

printf("max = %d\n",a);

}

if(a

{

printf("max = %d\n",b);

}

return(0);

}

输出结果: (当时学是为了考二级,已经不搞c了,现在使用网页编辑器完善下文档,不要太在意使用啥编辑器)

二、if(…) {…} else {…}

一般形式: if(表达式) {语句1; } else {语句2;}用于双分支控制的条件语句;用于非此即彼的关系时;

例2:输出两个整数中的最大值

例2:关于对于非法字符的检查与处理

#include

int 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);

}

return(0);

}

结果1: 结果2:

三、if(…) {…} else if(…) {…} … else if(…) {…} else {…}

一般形式: if(表达式1) { 语句1;} else if(表达式2) {语句2;} … else if(表达式n){语句n;} else{语句n+1;}

用于多分支的控制的条件语句;

例3:判断字符

#include

int 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')

{

printf("这是一个数字!\n");

}

else if(ch >= 'A' && ch <= 'Z')

{

printf("这是一个大写字母!\n");

}

else if(ch >= 'a' && ch <= 'z')

{

printf("这是一个小写字母!\n");

}

else

{

printf("这是其他字符!\n");

}

return(0);

}

输出结果:

四、switch() {case …: …; case …: …; … default: …;}

一般形式: switch(表达式) { case 常量1:语句1; case 常量2:语句2; … case 常量n:语句n; default: 语句n+1; }用于多路选择的语句;

switch语句相当于多个if-else语句; (表达式)只能是char型或者int型; case 后面至少要有一个空格,常量后面是冒号 (表达式)与 常量类型要保持一致; 记得记得记得 在需要跳出的时候,在语句后面加上break;

例4:简单的加减乘除计算

#include

int main()

{

float a,b;

char ch;

printf("Input a(+ - * /)b:");

scanf("%f%c%f",&a,&ch,&b);

switch(ch)

{

case '+':

printf("%f%c%f=%.2f\n",a,ch,b,a+b);/*%.2f表示精度,可以理解为保留两位小数*/

break;

case '-':

printf("%f%c%f=%.2f\n",a,ch,b,a-b);

break;

case '*':

case 'X':

case 'x':

printf("%f%c%f=%.2f\n",a,ch,b,a*b);/*输入"x" "X" "*" 都执行这一条语句;不加break,会顺语句执行*/

break;

case '/':

printf("%f%c%f=%.2f\n",a,ch,b,a/b);

break;

default:

printf("请输入正确算式!\n");

}

return(0);

}

输出结果

结果1:

输入:1+2

结果:Input a(+ - * /)b:1.000000+2.000000=3.00

结果2:

输入:2-1

结果:Input a(+ - * /)b:1.000000+2.000000=3.00

结果3:

输入:2.2x2.2

结果:Input a(+ - * /)b:2.200000x2.200000=4.84

结果4:

输入:10/3

结果:Input a(+ - * /)b:10.000000/3.000000=3.33

五、扩展

5.1:C语言中输出格式%m.nf的意思

m:表示宽度.n:表示精度

#include

int main()

{

float num = 10.1;

printf("%6.2f\n",num);

return(0);

}

输出结果为 10.10(m=6,其中空格和点各占1位,小数(n)占2位)

%6:表示输出的浮点数总共占用6个字符的宽度。如果浮点数的实际字符数少于6个,那么默认情况下,它会在左侧用空格填充到6个字符的宽度。 .2:与前面解释的一样,表示在输出浮点数时,小数点后只保留2位数字。 因此,"%6.2f"的意思是:输出的浮点数总共占用6个字符的宽度(包括小数点和小数部分),其中小数点后保留2位数字。如果浮点数的实际字符数少于6个,左侧会用空格填充。

本文出现任何错误,欢迎留言批评指正。

相关推荐

王者荣耀战队活跃度提升指南,王者荣耀战队升到10级需要多少活跃度
京东快递全国时效表(京东配送时效说明)
365bet在线足球开户

京东快递全国时效表(京东配送时效说明)

⌛ 06-30 👁️ 5700
钓桂鱼用什么饵料钓 鳜鱼吃什么饵
365-002 bet

钓桂鱼用什么饵料钓 鳜鱼吃什么饵

⌛ 07-01 👁️ 3945
《斗战神》组队方法
365bet在线足球开户

《斗战神》组队方法

⌛ 07-02 👁️ 7059
WPS Office 新手入门全攻略:安装、功能导航与高效使用技巧
电脑设置u盘读写权限操作方法
365bet足球直播

电脑设置u盘读写权限操作方法

⌛ 06-29 👁️ 2936