c语言if语句的用法
else 语句2
请问如果表达式的值是真的,去执行语句1,然后它是直接跳过else,去执行下个语句,还是去执行else,结果不满足,然后去执行下个语句 展开
c语言提供了三种形式的if语句:
1、if(表达式)语句。
例如:if(x>y)printf("%d",x);
此时,如果表达式为真,则执行printf语句。
2、if(表达式)语句1 else 语句2
例如:
if(x>y)printf("%d",x);
else printf("%d",y);
此时,如果x>y成立为真,则执行语句printf("%d",x),然后直接跳过else,同时也跳过语句printf("%d",y),去执行之后的语句。
如果x>y不成立为假,则不执行语句printf("%d",x),执行语句printf("%d",x)。
3、if(表达式1)语句1
else if(表达式2)语句2
else if(表达式3)语句3
else if(表达式m)语句m
else 语句 n
此时,哪个表达式为真,则运行哪个if后面的语句。如表达式3成立为真,执行语句3。
在每个语句中,可以有多个语句,但需要加上大括号
例:if(x>y){printf("%d",x);break;}
扩展资料:
if语句使用的注意事项:
1.if(条件表达式)其后没有分号。
一般来说,有"{}"有没有";",有";"就没有"{}"
2.if语句所控制的语句如果是一条语句,我们可以不写大括号;
如果控制的是两条以上的语句,必须加大括号。
if语句的控制体没有加大括号是其后跟的一条语句。
建议:永远加上大括号。避免不必要的错误。
参考资料:百度百科-if语句
if语句一般有三种基本形式,其它扩展形式,也是以下面三种形式为基础,个人活学活用而已。
1、 if……形式
一般格式:if(表达式) 语句;
语义是:如果表达式的值为真,则执行其后的语句,否则不执行该语句。语句可以是单条语句,也可以是用花括号{}包括起来的复合语句。示例如下:
#include <stdio.h>
int main(){
int a,b,max;
printf("\n input two numbers: ");
scanf("%d%d",&a,&b);
max=a;
if (max<b) max=b;
printf("max=%d\n",max);
return 0;
}
2、if……else形式
一般格式:
if(表达式)
语句1;
else
语句2;
语义是:如果表达式的值为真,则执行语句1,否则执行语句2 。语句1和语句2可以是复合语句。
示例如下:
#include <stdio.h>
int main(){
int a, b;
printf("input two numbers: ");
scanf("%d%d",&a,&b);
if(a>b)
printf("max=%d\n",a);
else
printf("max=%d\n",b);
return 0;
}
3、if……else……if形式
一般形式为:
if(表达式1)
语句1;
else if(表达式2)
语句2;
else if(表达式3)
语句3;
…
else if(表达式m)
语句m;
else
语句n;
语义是:依次判断表达式的值,当出现某个值为真时,则执行其对应的语句。然后跳到整个if语句之外继续执行程序。 如果所有的表达式均为假,则执行语句n。然后继续执行后续程序。示例如下:
#include <stdio.h>
int main(){
char c;
printf("input a character: ");
c=getchar();
if(c<32)
printf("This is a control character\n");
else if(c>='0'&&c<='9')
printf("This is a digit\n");
else if(c>='A'&&c<='Z')
printf("This is a capital letter\n");
else if(c>='a'&&c<='z')
printf("This is a small letter\n");
else
printf("This is an other character\n");
return 0;
}
4、扩展形式
if条件控制语句的形式是多种多样的。比如if嵌套、if……if类似的形式,但是都离不开上面介绍的三种基本形式。个人活学活用即可。
if语句一般有三种基本形式,其它扩展形式,也是以下面三种形式为基础:
1、 if……形式一般格式:if(表达式) 语句;
语义是:如果表达式的值为真,则执行其后的语句,否则不执行该语句。语句可以是单条语句,也可以是用花括号{}包括起来的复合语句。
示例如下:
#include;int main(){;int a,b,max;;printf("\n input two numbers: ");sca("%d%d",&a,&b);
max=a;if (maxint main(){int a, b;printf("input two numbers: ");scanf("%d%d",&a,&b);if(a>b)printf("max=%d\n",a);elseprintf("max=%d\n",b);return 0;}
2.if……else……if形式一般形式为:if(表达式1)语句1;else if(表达式2)语句2;else if(表达式3)语句3;
else if(表达式m)语句m;else语句n;
语义是:依次判断表达式的值,当出现某个值为真时,则执行其对应的语句。然后跳到整个if语句之外继续执行程序。 如果所有的表达式均为假,则执行语句n。然后继续执行后续程序。
既然if是真,那么else当然不会运行。。
if else的意思是 如果if是真那么只运行if,如果(((if是假就运行else..)))
多练习下很容易掌握的,,,,每个else只能对他前面的一个if起作用也就是看else只看他前面的一个if
列:
main()
{
float grade;
int n1=0,n2=-1;
system("cls");
while(grade!=-1)
{
printf("grade[]:=");
scanf("%f",&grade);
if(grade>=60) (((((((如果grade大于等于60
n1++; (((((((((((((((那么n1+1;
else ((((((((((((((((else看他上一个if
n2++; (((((((((((((((即如果上一个if里是假。。。 那么n2+1
}
printf("YES---%d\tNO---%d",n1,n2);
getch();
}
把多个语句用括号{}括起来组成的一个语句称复合语句。
在程序中应把复合语句看成是单条语句,而不是多条语句,例如
{
x=y+z;
a=b+c;
printf("%d%d",x,a);
}
是一条复合语句。复合语句内的各条语句都必须以分号“;”结尾;此外,在括号“}”外不能加分号。
所以一般复合语句用于
要执行某段特殊功能的程序
比如for语句
if语句
while
语句
甚至
某些函数等