c语言正确表达式语法
‘壹’ c语言和:操作符怎么用
C语言?和:是三目运算符,也叫三元运算符。
语法:表达式1 ? 表达式2 : 表达式3;
函数:先执行表达式1,执行完毕,如果表达式1的结果为真,则执行表达式2,整个表达式的结果就是表达式2的结果,否则执行表达式3,结果是表达式3的结果。
例如:int res=1?10:20;
可以简单理解为表达式1成立吗?成立执行表达式2,否则执行表达式3。
(1)c语言正确表达式语法扩展阅读:
关于三目运算符的几点说明:
1、通常,表达式1是用于描述条件表达式中的条件的关系表达式或逻辑表达式。表达式2和3可以是常量、变量或表达式。例如:
(x==y)?y':'n'(d=b*b-4*a*c)>=0?sqrt(d):sqrt(-d)ch=(ch>='a'&&ch<='z')?(CH+32):CH
2、条件表达式的执行顺序为:首先求解表达式1。如果值为非零,则条件为真,则求解表达式2,并将表达式2的值用作整个条件表达式的值;
如果表达式1的值为0,表示条件为假,则解方程3,表达式3的值是整个条件表达式的值。例如:
(a>=0)?a:-a执行的结果是a的绝对值。
3、在程序中,直接将条件表达式的值赋给变量。例如:
min=(a<b)的结果?a:b是将条件表达式的值赋给变量min,即a和b中的较小者赋给min。
‘贰’ C语言条件表达式
由条件运算符及其相应的操作数构成的表达式称为条件表达式。
条件表达式的一般形式:表达式1?表达式2:表达式3
含义:若条件表达式1的值非0,则该条件表达式的值是表达式2的值,否则是表达式3的值。
例如:
1、max=((a>b)?a:b)
就是将a和b二者中较大的一个赋给max。
2、min=(a<b)?a:b
就是将a和b二者中较小的一个赋给min。
(2)c语言正确表达式语法扩展阅读
条件表达式的优先级
条件运算符优先级高于赋值、逗号运算符,低于其他运算符
例如: int m=5,n=10,a=1,b=3
(1) m<n ? X: a+3
等价于: (m<n) ?(x) :(a+3)
(2) a++>=10 && b-->20 ? a : b
等价于: (a++>=10 && b-->20) ? a : b
(3) x=((3+a>5 )? 100 : 200)
等价于:x=((3+a>5)?100:200)
‘叁’ c语言if语句的用法
c语言提供了三种形式的if语句:
1、if(表达式)语句。
例如:if(x>y)printf("%d",x);
此时,如果表达式为真,则执行printf语句。
2、if(表达式)语句1 else 语句2
例如:
if(x>y)printf("%d",x);
elseprintf("%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;}
(3)c语言正确表达式语法扩展阅读:
if语句使用的注意事项:
1.if(条件表达式)其后没有分号。
一般来说,有"{}"有没有";",有";"就没有"{}"
2.if语句所控制的语句如果是一条语句,我们可以不写大括号;
如果控制的是两条以上的语句,必须加大括号。
if语句的控制体没有加大括号是其后跟的一条语句。
建议:永远加上大括号。避免不必要的错误。
参考资料:网络-if语句
‘肆’ c语言语法的表达式有什么要求
执行到那一句才有相应的效果,问号表达式可以改写成if-else:
x = a > b ? i++ : i++;
等同于:
if(a > b)
x = i++;
else
x = i++;
所以最后x等于3,i自增了一次等于4。
为什么一定要去研究那些没用的旮旯呢,我从来不记什么结合方向和运算符优先级别,对于问号表达式,我只知道:
x = a > b ? i++ : i--;
如果a > b,那么x = i++,否则x = i--,而整个表达式取了哪一个i的值,那个i的相关副作用运算(如果有的话,比如自增自减)才发生作用。如果你实在想不透就把它改写成上面那样的if-else语句,一目了然,没必要学孔已己样咬文嚼字在那些拐角旮旯里浪费时间。
BTW:你们的考试考运算符结合方向?天......