首页 > 解决方案 > 如何在我的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++while-loop

解决方案


这里真正的问题是缩进和结构,这很容易通过用惯用的 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()

提示:在编写代码时,缩进和格式所传达的结构非常重要。您应该能够一目了然地看到正在发生的事情,而无需在语法级别上阅读和解析代码。

提示:当您遇到令人困惑的语法问题或错误时,如果您遇到困难,请花时间组织您的代码,使其更加清晰易懂。改进变量名称。在适当的地方将事物组织成功能。分解你的问题,直到清楚问题是什么。


推荐阅读