“没有”之前的“如果”

时间:2016-11-16 11:11:04

标签: c++

有很多这样的问题,但没有人可以帮我解决这个问题。 所以就像标题所说的那样没有先前的if。 试图建立一个程序,计算从1-1000的数字,可以除以2。

#include <iostream>
using namespace std;
int main()
{
    int a;
    a=1;
    while(a<=1000)
       if(a%2==0)
         cout<<a;
         a++;
       else
         a++;

       return 0;
}

5 个答案:

答案 0 :(得分:12)

C ++不是Python - 空格不会改变程序的行为。要使cout<<aa++都属于if的真分支正文,您需要将它们括在花括号中以创建compound statement

if(a%2==0)
{
    cout<<a;
    a++;
}
else
{
    a++;
}

答案 1 :(得分:1)

如果没有大括号,大多数编程语言if - else语句只适用于一个语句。所以使用大括号。

#include <iostream>
using namespace std;
  int main()
 {
   int a;
   a=1;
   while(a<=1000)
   if(a%2==0){
     cout<<a;
     a++;
   }else{
     a++;
   }

   return 0;
 }

答案 2 :(得分:0)

必须使用大括号{}

替换或更正
 if(a%2==0)
         cout<<a;
         a++;
       else
         a++;

C ++不是缩进的编译语言

改为:

if( a%2 == 0)
{
  cout<<a;
  a++;
}else{
  a++;
}

答案 3 :(得分:0)

首先,目前尚不清楚问题所在。如果您询问else是否可以放在非if语句之后,那么else的目的是在if时执行代码的情况是错误的。如果您想知道程序有什么问题,您需要使用{}大括号。 for循环会更好:

for(int a = 1;a<=1000;a++){
    if((a%2)==0){
        cout<<a<<' ';
    }
}

您还忘记在打印a后打印空格,您也应该修复它。

答案 4 :(得分:0)

像其他答案一样:使用大括号...并分解:如果a++中所做的一切(else)与if的第二部分相同,然后你可以按原样重写你的主页:

#include <iostream>

using namespace std;

int main() {
  int a = 1;
  while (a<=1000) {
    if (a%2==0) {
      cout<<a;
    }
    ++a;
  }
  return 0;
}

或者,因为这是for循环的目的:

  for (int a = 1; i <= 1000; ++a) {
    if (a%2==0) {
      cout << a;
    }
  }