c++ - 如何在我的ELSE条件下连接IF?
问题描述
C++ 我卡住了我的 if 和 else 没有连接
错误:没有前面的 if
#include<iostream>
int main(){
int i=1, num, sum=0;
while (i <= 5) {
cout<<"Enter a number: ";
cin>>num;
if (num % 2 ==0 ){
sum = sum + num;
i++;}
cout<<"\nThe sum is " << sum;
}
else{
sum=sum*num;
i++;
cout<<"\nThe product is"<<sum; }
}
}
如果在我的其他条件下,如何连接?
解决方案
这里真正的问题是缩进和结构,这很容易通过用惯用的 C++ 编写来解决:
#include <iostream>
// Avoid using namespace std; as that separation exists for a reason
int main() {
int sum = 0;
// Use a for() loop instead of while(n < L) { ... n++ }
// Declare iterator variables inside the scope in which they're used
for (int i = 0; i < 5; ++i) {
// Declare variables individually if/when they are needed
int num;
std::cout << "Enter a number: ";
std::cin >> num;
if (num % 2 == 0) {
sum += num; // x += y -> x = x + y
std::cout << "The sum is " << sum << std::endl;
}
else {
sum *= num; // x *= y -> x = x * y
std::cout << "The product is " << sum << std::endl;
}
}
return 0;
}
关键是用在哪里,for()
而不是用的不合适while()
。
提示:在编写代码时,缩进和格式所传达的结构非常重要。您应该能够一目了然地看到正在发生的事情,而无需在语法级别上阅读和解析代码。
提示:当您遇到令人困惑的语法问题或错误时,如果您遇到困难,请花时间组织您的代码,使其更加清晰易懂。改进变量名称。在适当的地方将事物组织成功能。分解你的问题,直到清楚问题是什么。
推荐阅读
- jenkins - Jenkins git 插件查询
- azure - Azure CDN 上的 ttf 字体文件出现 CORS 错误
- excel - 根据复制到新工作表的单元格值对数据进行排序,也可以反向工作
- javascript - Mapbox高程数据精度
- reactjs - 无法通过反应将 nginx 代理设置为 docker 容器
- linux - 使用 zgrep 在目录中查找电话号码
- javascript - 如何用 lodash 在另一个选择中进行深度选择?
- intellij-idea - IntelliJ 标题栏/顶栏消失
- xml - 所有 xslt 文件都抛出错误,“”字符,十六进制值 0x20,不能包含在名称中
- testing - Testcafe - 如何在报告中设置相对而不是绝对截图路径