关系运算符中,>、>=、<、<=的优先级相同,==、!=的优先级相同,前4种的优先级高于后2种。
关系运算符都是双目运算符,其结合性是从左到右。关系运算符的优先级低于算术运算符,高于赋值运算符。
逻辑运算符由&&(逻辑与)、||(逻辑或)、!(逻辑非)三种。其中逻辑非(!)为单目运算符(只有一个操作数),其他两个为双目运算符。优先级是!最高,&&次之,||最低;&&与||具有左结合性,!具有右结合性。
条件运算符由“?”和“:”构成,要求有三个操作对象,称为三目(元)运算符。它是C语言中唯一的一个三目运算符。一般形式为:表达式1?表达式2:表达式3
例如:
min=(a<b)?a:b
等价于
if (a<b) min=a;
else min=b;
无论何种类型的表达式,其值非0就是真,其值为0就是假。
关于if和switch语句,下面写一些简单的例子。
#include <stdio.h>
int main() {
float x, y, z, t;
printf("请输入三个值,使用逗号分隔:");
scanf("%f,%f,%f", &x, &y, &z);
if (x > y) {
t = x;
x = y;
y = t;
}
if (y > z) {
t = y;
y = z;
z = t;
}
if (x > y) {
t = x;
x = y;
y = t;
}
printf("中间值是:%f", y);
return 0;
}
#include <stdio.h>
int main() {
int score, n;
printf("请输入成绩(0~100):");
scanf("%d", &score);
n = (score >= 0 && score <= 100) ? score / 10 : -1;
switch (n) {
case 0:
case 1:
case 2:
case 3:
case 4:
case 5:
printf("不及格!");
break;
case 6:
printf("及格");
break;
case 7:
printf("中等");
break;
case 8:
printf("良好");
break;
case 9:
case 10:
printf("优秀");
break;
default:
printf("成绩输入不规范!");
}
return 0;
}