逻辑 && 语句
Logical && statement
我想了解为什么以下代码无法正常工作:
char c;
NSLog(@"Enter a single character: ");
scanf("%c", &c);
if (c >= '0' && c <= '9') {
NSLog(@"It's a digit");
}
当我输入 0 到 9 之间的数字时,我得到正确的输出 - "It's a digit"。但是当我输入类似 197 的内容时,我得到相同的输出。但在逻辑运算符 (&&) 中,这两个条件都应该满足。为什么当数字大于 9 时它的计算结果为真?
顺便说一句,如果你们不知道,scanf
允许您在 Xcode 控制台或终端中输入一些东西。
您只读了“1”。这在你的范围内。
char c
,意味着scanf("%c", &c)
只能将单个字符读入char变量c
。因此输入 197
将读作 1
到 c
,使逻辑 &&
为真。 Look at this compilation
我想了解为什么以下代码无法正常工作:
char c;
NSLog(@"Enter a single character: ");
scanf("%c", &c);
if (c >= '0' && c <= '9') {
NSLog(@"It's a digit");
}
当我输入 0 到 9 之间的数字时,我得到正确的输出 - "It's a digit"。但是当我输入类似 197 的内容时,我得到相同的输出。但在逻辑运算符 (&&) 中,这两个条件都应该满足。为什么当数字大于 9 时它的计算结果为真?
顺便说一句,如果你们不知道,scanf
允许您在 Xcode 控制台或终端中输入一些东西。
您只读了“1”。这在你的范围内。
char c
,意味着scanf("%c", &c)
只能将单个字符读入char变量c
。因此输入 197
将读作 1
到 c
,使逻辑 &&
为真。 Look at this compilation