我的简单if-else语句如何无法访问代码?

时间:2018-11-02 06:54:18

标签: c++ if-statement unreachable-statement

老实说我很震惊,我得到一个错误。我是CS初级专业的学生,​​无法使用这个简单的程序。 Clion说这两行是无法到达的,但是我的测试用例似乎有效。

代码:

#include <iostream>
#include <string>
using namespace std;

int main() {

    string s = "";
    while(s != "|") {
        int val1 = 0;
        int val2 = 0;
        cin >> val1;
        cin >> val2;
        if(val1 == val2) {
            cout << "the numbers are equal.\n";
        } else {
            cout << "the smaller value is: " << min(val1, val2) << '\n'; // Says these two 
            cout << "the larger value is: " << max(val1, val2) << '\n'; // lines are unreachable
        }
        cin >> s;
    }

    return 0;
}

测试用例:

3 3
the numbers are equal.
f
4 5
the smaller value is: 4
the larger value is: 5
|

Process finished with exit code 0

如果此代码无法访问,而我的程序怎么到达它呢?

1 个答案:

答案 0 :(得分:1)

<罢工> CLion

可能存在一些问题

是引起我注意的一个:

您检查字符串是否等于聊天数组,可以在运行时解析它,但是代码检查器不喜欢它。尝试使用:

char s;
while(s!='|') {...}

除此之外,我不知道...

它可能尚未预测变量的变化,请尝试使用volatile关键字吗?这可能会有所帮助...那仍然是一个错误。