虽然预期,IF声明

时间:2013-11-24 15:44:41

标签: c++ if-statement while-loop

if (Mileage > 0) do
    {
        calculateMileage();
        cout << "The cost of shipment over " << setprecision(2) << Mileage << " miles is \234" << variableShippingCost << ".";
        cout << "\n \n";
        system("pause"); //to hold the output screen
        return(0);
    }
    else
    {
        cout << "\n ERROR: The distance should be a positive value.";
        system("pause"); //to hold the output screen
        return(0);
    }

我不知道为什么但是 Visual Studio 12 会在其他方面带来错误,说它需要一段时间。我之前已经做了很多 if else语句,而且在这个程序中运行正常,所以任何人都可以帮助我理解为什么在这种情况下它不满意?

4 个答案:

答案 0 :(得分:4)

正确的语法是:

if (...) 
{...} else {...} 

使用if

do {...}
while (...);

使用do...while时。

C / C ++中没有if() do语句!

答案 1 :(得分:0)

do后面有if,因此编译器需要在while阻止后do

if (Mileage > 0)
{
    do
    {
        calculateMileage();
        //etc...
    } while (something);
}
else
{
    //etc...
}

if (Mileage > 0) // no `do` here
{
    calculateMileage();
    //etc...
}
else
{
    //etc...
}

答案 2 :(得分:0)

不要使用do。这是一个while循环,使用它的正确语法是

do{
...code here...
} while(some condition is true)

你想要的是

if (Mileage > 0) //there is an implicit then here no need to do anything here
{
    calculateMileage();
    cout << "The cost of shipment over " << setprecision(2) << Mileage << " miles is \234" << variableShippingCost << ".";
    cout << "\n \n";
    system("pause"); //to hold the output screen
    return(0);
}   //<<<------if you really wanted to use the do (which you shouldnt) put a while here.
else
{
    cout << "\n ERROR: The distance should be a positive value.";
    system("pause"); //to hold the output screen
    return(0);
}

答案 3 :(得分:0)

因为你做错了! C ++有if-else语句和do-while语句。 do期望while跟随自己,同时while可以独立使用。 同样,if可以单独使用,但else要求if在其自身之前。