C++ -- 这段代码有什么问题

C++ -- what is wrong with this code?

本文关键字:什么 问题 代码 段代码 C++      更新时间:2023-10-16

我似乎无法弄清楚这里的问题是什么:

if(temperature<=-173)
        cout << "Ethyl alcohol will freeze" << endl;
    else if (temperature >-173 && temperature<172)
        cout << "Ethyl alcohol will be liquid" << endl;
    else(temperature>=172)
        cout << "Ethyl alcohol will boil" << endl;

我得到的错误是

error: expected ';' before 'cout'
=== Build failed: 1 error(s), 0 warning(s) (0 minute(s), 0 second(s)) ===

更改:

else(temperature>=172)

只是:

else  // temperature >= 172

前者不是一个有效的if陈述,因为它没有if,无论如何,你已经涵盖了固相和液相,所以唯一剩下的就是气体(尽管有奇怪的等离子体状态)。

您收到模糊错误消息的原因是:

 else(temperature>=172)

实际上非常有效(就像42;有效,但同样无用),执行(temperature>=172)作为else情况,它只是评估条件并将其丢弃。

但是,在这种情况下,它应该在下一个语句 cout << 之前以分号结尾。因此错误:

expected ';' before 'cout'

您不能直接在"else"之后添加条件部分。

更改代码以匹配以下内容:

if(temperature<=-173)
        cout << "Ethyl alcohol will freeze" << endl;
    else if (temperature >-173 && temperature<172)
        cout << "Ethyl alcohol will be liquid" << endl;
    else
        cout << "Ethyl alcohol will boil" << endl;

确切的问题是您在else和您的状况(temperature>=172)之间缺少if

但你也可以无条件地写:

if(temperature<=-173)
   cout << "Ethyl alcohol will freeze" << endl;
else if (temperature >-173 && temperature<172)
   cout << "Ethyl alcohol will be liquid" << endl;
else
   cout << "Ethyl alcohol will boil" << endl;

所以详细阐述上面的答案,他的意思是:

if(temperature<=-173)
   cout << "Ethyl alcohol will freeze" << endl;
else if (temperature >-173 && temperature<172)
   cout << "Ethyl alcohol will be liquid" << endl;
else if (temperature >= 172)
   cout << "Ethyl alcohol will boil" << endl;

但是你最好接受我的第一个答案并节省几个字节的处理。