(一)if语句和逻辑表达式
1.if语句
if语句有两种结构,if和if else,同时,if语句在else之后还可以再嵌套if else。这样可以形成如下多个分支的结构:
if (test_expression)
Statement1;
else if ()
Statement2;
else if ()
Statement3;
else if ()
Statement4;
else
Statement5;
但是,是相近的if else是一对的,而不是最前和最后,只不过这种格式看起来更好看一些。if else结构总是最近的if else配对,这是需要注意的。
编写让编译器能够发现错误的代码,比找出导致难以理解的错误的原因要容易得多。因此,当用if语句的判断的时候,我们可以将例如a==2这样的判断写成2==a,这样一旦将==运算符错误写出=运算符的时候,编译器就会发现错误并提醒。
2.逻辑表达式
c++采用三种不同的逻辑运算符,来组合或修改已有的逻辑表达式。逻辑或||,逻辑与&&,逻辑非!。
逻辑非!一般应用于返回值为true或false的函数中,作为下一步运行的判断语句。
另外,c++的&&和||运算符的优先级要小于关系运算符,而!运算符要大于所有的关系运算符和算数运算符。也就是说a==3 || b==4这样的表达式不需要使用括号,而形如!b==4这样的形式需要使用括号,上面的是错误的,因为!将会与b结合,而我们需要的其实是这样的判断!(b==4)。||运算符和&&运算符也是一个顺序点,因此会先判定左侧并且在右侧被判定之前产生副作用,更需要注意的是,如果左侧的判断已经能够对整体判断造成决定影响,那么运算符右侧的表达式将不会被运算。
对于逻辑表达式及关系表达式来说,有括号可以让程序更加明显和容易理解,因此,不管需不需要使用括号,我们尽量还是要用括号将先进行的判断括起来,这一方面可以让别人或自己看程序方便,另一方面也避免了因为记忆不准确或规则变化而带来的运算错误。注意,逻辑与运算符&&比逻辑或运算符||的优先级要高!
and,or,not是上面的与或非的字符表达的方式,可以完全代替&&,||,!。(还有and_eq,or_eq,not_eq这种加等号的形式)。
网友评论