有很多这样的问题,但没有人可以帮我解决这个问题。 所以就像标题所说的那样没有先前的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;
}
答案 0 :(得分:12)
C ++不是Python - 空格不会改变程序的行为。要使cout<<a
和a++
都属于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;
}
}