if 结构和三目运算和switch语句
if语句需要注意的地方:
if判断只能接一个语句,存在多个语句时,用块语句表示{},若在if判断后
直接加“;”相当于if判断后加一个空语句,即使条件成立什么也不会干!
1. if的第一种形态(真假)
如果表达式的值为真, 则执行其后的语句, 否则不执行该语句。
if(表达式)语句
void main() { int a=1, b=2, c=3; if (a+b)c=4; printf("%d", c); }
void main() { int a=1, b=2, c=3; if (a<b); { //养成良好习惯, 加上{} c=4; } printf("%d", c); }
第二种形式为 if - else
if(表达式) 语句1; else 语句2;
void main() { int a=1, b=2; if (a>b) { printf("我比你大"); } else { printf("我比你小"); } }
第三种形式 else if 多次判断
if(表达式1) 语句1; else if(表达式2) 语句2; else if(表达式3) 语句3 .。。。。 else 语句;
void main() { int a=8; if (a>10) { printf("值大于10"); } else if (a == 10) { printf("值等于10"); } else if (a == 10) { printf("值等于10"); } else if (a == 8) { printf("要的就是你"); } else { printf("我比你小"); } }
三目运算
条件运算符为?和:, 他是一个三目运算符, 即有三个参与运算的量。
组成条件表达式的形式为:
条件1? 条件2: 条件3
如果条件1为真则执行条件2
如果条件1为假, 则执行条件3
void main() { int a=4, b=3, c; if (a>b) c=a; else c=b; } #----------------------------- void main() { int a=4, b=3, c; c =(a>b)?a:b; printf("%d", c); }
注意事项:
1).条件运算符的运算优先级低于关系运算符和算术运算符, 但高于赋值符: max=(a>b):c:d 可以去掉括号而写成 max = a>b:c:d 2)条件运算符?和:是一对运算符, 不能单独分开使用 3)条件运算符的结合方向是自右向左。 例如: 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=1; printf("please input number: \n"); scanf("%d", &a); switch(a) { case 1:printf("1111\n"); { b = 3; printf("b = %d\n", b); } default: printf("bbbb %d\n", b); } }
case 1:printf("1111\n");break;
还可以配合三目运算
switch (a>1?2:3)
注意事项:
1)在case后的各常量表达式的值不能相同, 否则会出现错误。 2)在case后, 允许有多个语句, 可以不用{}括起来 3)各case和default子句的先后顺序可以变动, 而不会影响程序执行结果 4)default子句可以省略不用。
作者:沐禹辰
出处:http://www.cnblogs.com/renfanzi/
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接。
出处:http://www.cnblogs.com/renfanzi/
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接。