确实对if的用法产生了一定的疑虑,不太明白和了解,有合理的解释不
a = 0,不是 a == 0
所以第一个条件不满足,并且此时a = 0了
所以执行y+=y,y = 10 + 10
所以y = 20
写法一:
if(表达式)//表达式结果为真,语句执行,否则不执行
语句;
代码实例:
#include <stdio.h>
int main()
{
int age = 10;
if (age >= 18)//结果为假,语句不执行
printf("成年");
return 0;
}//所以打印结果为空
写法二:
if(表达式)//如果表达式为真,语句1执行,否则语句1被执行
语句1;
else
语句2;
代码实例:
#include <stdio.h>
int main()
{
int age = 10;
if (age >= 18)//语句为假,执行语句2
printf("成年");
else
printf("未成年");//语句2为未成年,所以打印的结果为未成年
return 0;
}
写法三:
//多分支
if(表达式1)//如果表达式1位真,语句1执行,否则看表达式2,表达式2为真,则语句2执行,否则语句3执行
语句1;
else if(表达式2)
语句2;
else
语句3;
代码实例:
#include <stdio.h>
int main()
{
int age = 20;
if (age >18)//表达式1为真
printf("成年\n");//打印结果为成年
else if(age = 18)
printf("刚刚成年");
else
printf("未成年\n");
return 0;
}
if语句是C语言中的一个控制语句,用于根据表达式的结果来执行不同的操作。if语句有三种写法,分别是单一if、if-else和多分支if-else if-else。
单一if的语法结构为:
if(表达式)
语句;
其中,如果表达式结果为真,则执行if后面的语句;否则不执行。例如:
#include <stdio.h>
int main()
{
int age = 10;
if (age >= 18)
printf("成年");
return 0;
}
由于age小于18,表达式结果为假,所以程序不执行printf语句。
if-else的语法结构为:
if(表达式)
语句1;
else
语句2;
其中,如果表达式结果为真,则执行语句1;否则执行语句2。例如:
#include <stdio.h>
int main()
{
int age = 10;
if (age >= 18)
printf("成年");
else
printf("未成年");
return 0;
}
由于age小于18,表达式结果为假,所以程序执行printf("未成年")语句。
多分支if-else if-else的语法结构为:
if(表达式1)
语句1;
else if(表达式2)
语句2;
else
语句3;
其中,如果表达式1为真,则执行语句1;否则看表达式2,如果表达式2为真,则执行语句2;否则执行语句3。例如:
#include <stdio.h>
int main()
{
int age = 20;
if (age >18)
printf("成年\n");
else if(age == 18)
printf("刚刚成年");
else
printf("未成年\n");
return 0;
}
由于age大于18,表达式1为真,所以程序执行printf("成年")语句。
最后,需要注意的一点是,if语句内的等号是用于比较的,而不是赋值。如果只写一个等号,编译器不会报错,但是程序的结果却可能跟预期不同。如果要赋值,则需要使用双等号,如: age == 18。