-5

C ++を開始する小さなプログラムを作成するだけで、コンパイラは、メインのwhileループを参照してifのないelseがあると言いますが、明らかにそうではなく、理由がわかりません。while ループを削除すると正常に動作します。

#include <iostream>
using namespace std;

int number;

int arithmetic(int num)
{
 if(num > 20)
  num = num * 5;
 else 
  num = 0;
 return (num);
}

int main()
{ 
 int wait;
 cout <<  "I will take any number providing it is higher than twenty" << endl;
 cout <<  "and I will multiply it by 5. I shall then print every number" << endl;
 cout <<  "from that number backwards and say goodbye." << endl; 
 cout <<  "Now please give me your number: " << endl;
 cin >> number;
 int newnum = arithmetic(number);
 if (newnum != 0)
  cout << "Thank you for the number, your new number is" << newnum << endl;
  while(newnum > 0){
   cout << newnum;
   --newnum;
  }
  cout << "bye";
 else
  cout << "The number you entered is not greater than twenty";
 cin >> wait;
 return 0;
}
4

3 に答える 3

3

ブラケットがありません。あなたが持っている

if (newnum != 0)
cout << "Thank you for the number, your new number is" << newnum << endl;
while(newnum > 0){
cout << newnum;
--newnum;
 }
cout << "bye";
else
cout << "The number you entered is not greater than twenty";

あなたが持っている必要がありますが:

if (newnum != 0)
{
   cout << "Thank you for the number, your new number is" << newnum << endl;
   while(newnum > 0){
   cout << newnum;
   --newnum;
   cout << "bye";
}
else
    cout << "The number you entered is not greater than twenty";

if ステートメントに複数の操作がある場合は、常に括弧を使用する必要があります。1 つしかない場合は、それらを省略できます (この「else」ステートメントのように)。

于 2012-07-03T05:50:46.290 に答える
2

{の前後にif (newnum != 0)aが必要です。}else

于 2012-07-03T05:48:52.593 に答える
2

このタイプの構造は間違っています:

if(something)
  line1;
  line2; // this ; disconnects the if from the else
 else 
  // code

次のようなものが必要です

if ( something ) {
  // more than one line of code 
} else  {
  // more than one line of code
}
于 2012-07-03T05:50:05.530 に答える