为啥 if 语句没有打印出字符串? cpp

Posted

技术标签:

【中文标题】为啥 if 语句没有打印出字符串? cpp【英文标题】:why the if statement did not print out the string? cpp为什么 if 语句没有打印出字符串? cpp 【发布时间】:2020-03-31 16:44:10 【问题描述】:

我想在字符串中打印偶数和奇数,而不是在二进制中打印 true false | 1 / 0; 为什么输出仍然打印布尔值?

int main() 
    printf("enter the two numbers\n");
    int a;
    int b;
    cin >> a >> b;

    string arr[9] = "one","two","three","four","five","six","seven","eight","nine"; 
    for (int i = a; i <= b; i++)
    
        if(i <=9)
           cout << arr[i-1] << "\n";
        else
           cout << ( i%2 == 0)? "even" : "odd"; // print out 1/0 but did not print out the even and odd
           cout << "\n";
        
    

    return 0;


输出:

enter the two numbers
9 16
nine
1
0
1
0
1
0
1

【问题讨论】:

编译器警告很有帮助:“警告:条件表达式的第三个操作数无效”(wandbox.org/permlink/2mCAy4nyNZ5LJ93x)。 【参考方案1】:

您缺少括号来括住表达式。三元的优先级低于&lt;&lt;

cout << (( i%2 == 0)? "even" : "odd");

【讨论】:

另外,i%2 == 0 周围的括号也不需要。 @PeteBecker 没错,但是我们这些每次都要看墙上图表的人无论如何都会忍不住把它们放进去。 @stark --(我(明白(你在说什么))))。

以上是关于为啥 if 语句没有打印出字符串? cpp的主要内容,如果未能解决你的问题,请参考以下文章

为啥sql查询结果会打印出不需要的字符?

为啥以文本形式打开图像文件会打印出奇怪的字符?

为啥在 if 语句中初始化字符串似乎与在 switch 语句中不同? [复制]

为啥我的 If 语句在 PHP 中接受不正确的字符串条件?

为啥分离线程没有输出消息?

为啥此代码会根据缩进打印出不同的内容?