if 结构和三目运算和switch语句

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语句, 其一般形式为:

if 结构和三目运算和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);
} }

if 结构和三目运算和switch语句

case :printf("1111\n");break;

还可以配合三目运算

switch (a>?:)

注意事项:

)在case后的各常量表达式的值不能相同, 否则会出现错误。

)在case后, 允许有多个语句, 可以不用{}括起来

)各case和default子句的先后顺序可以变动, 而不会影响程序执行结果

)default子句可以省略不用。
上一篇:JAVA IO 类库详解


下一篇:【Python】python3.6中实现同一行动态输出