3>2+1&&4<2+1 等价于 (3>(2+1))&&(4<(2+1)) &&和||的结合方向为左结合,!的结合方向为右结合。如: a>b&&c>d&&e>f 等价于 ((a>b)&&(c>d))&&(e>f) !!!(a>b) 等价于 !(!(!(a>b))) 3、条件运算符及条件表达式 (1).条件运算符 ? : C语言中唯一的一个三目运算符。 (2).条件表达式 条件表达式的一般形式为: 表达式1?表达式2:表达式3 其中,表达式i (1≤i≤3)的类型任意,表达式1一般为关系表达式或逻辑表达式,表达式2和表达式3一般为同类型表达式。 条件表达式的求解过程是:先求解表达式1,若表达式1的值不为0,则求解表达 式2,表达式2的值就是条件表达式的值;若表 达式1的值为0,则求解表达式3,表达式3的值就是条件表达式的值。 如: 3>2?3+2:3*2 表达式的值为5 ’a’>’b’?3!=0:7= =8 表达式的值为0 (3).优先级和结合方向 条件运算符的优先级高于赋值运算符,但低于逻辑运算符、关系运算符和算术运算符。如: 3>2?3+2:3*2 等价于 (3>2)?(3+2):(3*2) ’a’>’b’?3!=0:7= =8 等价于 (’a’>’b’)?(3!=0):(7= =8) 条件运算符的结合方向为右结合。如: 注意: ·条件表达式中的表达式2和表达式3只有一个被求解。 ·表达式1的类型可与表达式2和表达式3的类型不同。 三、分支结构表示——IF语句 在C中条件语句的一般形式为: if(表达式) 语句1; else 语句2; 执行过程如下: 如果表达式的值为非0(TURE)即真, 则执行语句1, 执行完语句1从语句2后开始继续向下执行; 如果表达式的值为0(FALSE)即假, 则跳过语句1而执行语句2。然后程序继续往下执行。所谓表达式是指关系表达式和逻辑表达式的结合式, 关于表达式前面已作过介绍, 这是不再重复。 真(非表达假(0) 语 句 语 句 注意: 1. 如果语句1或语句2有多于一条语句要执行时, 必须使用\和\把这些语句包括在其中, 此时条件语句形式为: if(表达式) ??? { 语句体1; } else {语句体2;} 2. 分支程序的三种形式 (1)单分支: 例1输入一个整型数,输出该数的绝对值。 main() { int a,; scanf(\ if(a<=0) a=-a; printf(\ } (2)上述是双分支 例2输入两个整型数,将平方值较大者输出。 main() { int a,b,max; scanf(\ if(a*a>b*b) max=a; else max=b; printf(\ } (3)多分支if语句是双分支if语句的一个扩充,其格式为: 例3输入一个百分制成绩,输出其对应的等级。(90~100为A,80~99为B,70~79为C,60~69为D,0~59为E) main() { int x; char y; scanf(\ if(x>=90) y=’A’; else if(x>=80) y=’B’; else if(x>=70) y=’C’;
好文档 - 专业文书写作范文服务资料分享网站