2013-11-24 3 views
-1
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 Заявление

+4

Кто научил вас использовать 'do' так? – 0x499602D2

+0

Это из-за 'do' в конце вашей первой строки. Удалите его или добавьте 'while', чтобы пойти с ним. –

+0

О, господин, теперь я чувствую себя идиотом! Спасибо, что указали это! – user2950449

ответ

4

Правильный синтаксис:

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

при использовании if и

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

при использовании do...while.

Нет инструкции if() do в C/C++!

+0

О, проваливай, теперь я чувствую себя глупо! Спасибо! – user2950449

+0

Глупые ошибки могут случиться с кем угодно, я думаю. :) – Eutherpy

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... 
} 
0

не использовать делать. то есть для цикла в то время как и правильный синтаксис для использования, что является

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); 
} 
0

Потому что вы делаете это неправильно! C++ имеет инструкции if-else и инструкции do-while. do ожидает while после себя, между тем while может использоваться независимо. Аналогичным образом, if может использоваться независимо, но else ожидает if перед собой.

Смежные вопросы