【发布时间】:2021-09-30 02:46:17
【问题描述】:
我刚开始在学校学习编程,我第一次学会了如何使用? :。我的第一个问题是这叫什么,因为我的教授没有说它叫什么。
其次,我正在编写一个程序,它在给定偶数时打印偶数,在给定奇数时打印奇数。我想这样写
int main() {
int x = 3;
char *string;
if (x % 2 == 0 ? string = "Even" : string = "Odd");
printf("%d is %s", x, string);
}
问题是我在if (x % 2 == 0 ? string = "Even" : string = "Odd"); 收到错误error: lvalue required as left operand of assignment,它是string = "Odd" 部分。
我不允许将表达式分配给if( ? : ) 内的变量吗?我想保持我的代码简短而不必像这样写
if (x % 2 == 0) {
printf("%d is Even", x);
} else {
printf("%d is Odd", x);
}
【问题讨论】:
-
看不懂的不要用。一个简单的 if 更具可读性。 ...这叫什么...这叫三元运算符。
-
您不要在
if语句中使用?:。当您想将值分配给同一个变量时,使用它而不是if语句。 -
我想通了,我只是写了
string = (x % 2 == 0 ? "Even" : "Odd"); -
这能回答你的问题吗? If statement with ? and :
-
你可以在条件内赋值,但是由于默认优先级,你需要添加括号。