因为做题时,经常会混用几种语言的语法,导致难以察觉的错误,特记录如下:
1 三目运算符
Python
三目运算符的含义与C++
、Java
等语言:
判段的条件?条件为真时的结果:条件为假时的结果
语义不同,而是:
条件为真时的结果 if 判段的条件 else 条件为假时的结果
C++
int main() {
int x = 100;
int y = x > 0 ? x : -x;
int z = x ? x > 0 : -x;
cout << "y : " << y << ",z : " << z << endl;
}
输出:
y : 100, z : 1
JAVA
public class HelloWorld {
public static void main(String[] args) {
int x = 100;
int y = x > 0 ? x : -x;
// int z = x ? x > 0 : -x; // Error : Relational expression Required type: boolean
System.out.println("y : " + y);
}
}
输出:
y : 100
Python
x = 100
y = x if x > 0 else -x
print("y : "+str(y))
输出:
y : 100