if语句需要注意的地方:
if判断只能接一个语句,存在多个语句时,用块语句表示{},若在if判断后
直接加“;”相当于if判断后加一个空语句,即使条件成立什么也不会干!
1. if的第一种形态(真假)
如果表达式的值为真, 则执行其后的语句, 否则不执行该语句。
if(表达式)语句
void main()
{
int a=, b=, c=;
if (a+b)c=;
printf("%d", c);
}
void main()
{
int a=, b=, c=;
if (a<b);
{ //养成良好习惯, 加上{}
c=;
}
printf("%d", c);
}
第二种形式为 if - else
if(表达式)
语句1;
else
语句2;
void main()
{
int a=, b=;
if (a>b)
{
printf("我比你大");
}
else
{
printf("我比你小");
}
}
第三种形式 else if 多次判断
if(表达式1)
语句1;
else if(表达式2)
语句2;
else if(表达式3)
语句3
.。。。。
else
语句;
void main()
{
int a=;
if (a>)
{
printf("值大于10");
}
else if (a == )
{
printf("值等于10");
}
else if (a == )
{
printf("值等于10");
}
else if (a == )
{
printf("要的就是你");
}
else
{
printf("我比你小");
}
}
三目运算
条件运算符为?和:, 他是一个三目运算符, 即有三个参与运算的量。
组成条件表达式的形式为:
条件1? 条件2: 条件3
如果条件1为真则执行条件2
如果条件1为假, 则执行条件3
void main()
{
int a=, b=, c;
if (a>b)
c=a;
else
c=b; }
#-----------------------------
void main()
{
int a=, b=, c;
c =(a>b)?a:b;
printf("%d", c);
}
注意事项:
).条件运算符的运算优先级低于关系运算符和算术运算符, 但高于赋值符: max=(a>b):c:d 可以去掉括号而写成 max = a>b:c:d )条件运算符?和:是一对运算符, 不能单独分开使用 )条件运算符的结合方向是自右向左。 例如: a>b?a:c>d?c:d 可以理解为a>b?a:(c>d?c:d)
switch语句
c语言还提供了另一种用于多分支选择的switch语句, 其一般形式为:
其语义是:计算表达式的值。并逐个与其后的常量表达式值相比较, 当表达式的值
与某个常量表达式的值相等时, 即执行其后的语句, 然后不在进行判断, 继续执行后面
所有case后的语句。 如表达式的值与所有case后的常量表达式均不相同时,
则执行default后的语句。
看例子:
void main()
{
int a,b=;
printf("please input number: \n");
scanf("%d", &a);
switch(a)
{
case :printf("1111\n");
{
b = ;
printf("b = %d\n", b);
} default: printf("bbbb %d\n", b);
} }
case :printf("1111\n");break;
还可以配合三目运算
switch (a>?:)
注意事项:
)在case后的各常量表达式的值不能相同, 否则会出现错误。 )在case后, 允许有多个语句, 可以不用{}括起来 )各case和default子句的先后顺序可以变动, 而不会影响程序执行结果 )default子句可以省略不用。