簡體   English   中英

C / C ++預期“ else”之前的主要表達式

[英]C/C++ expected primary-expression before “else”

有人能幫我嗎? 即時通訊剛剛開始在C / C ++上編程(即時通訊使用DevC ++)

#include <iostream>
#include <cstdlib>

using namespace std;

int main(int argc, char* argv[]) {
    int X;
    int Y;
    int R;
    cout << "FUNCION POTENCIA";
    cout << "Ingrese primero la base y luego el exponente";
    cin >> X, Y;
    if (Y = 1) {
        R = X;
    };
    //if
    else() {
        do
            while (Y > 0) {
                R = X * X;
                Y--;
            }; //do while
    }; //else   cout<< R;
    system("PAUSE");
    return EXIT_SUCCESS;
} //main

您有五個錯誤:

  1. cin >> X, Y; 不會同時讀取XY用戶輸入。 它實際上是兩個單獨的語句: cin >> X; Y; 第一個讀取X用戶輸入,第二個讀取Y的當前值,並且不對其執行任何操作。 要讀取用戶輸入的兩個變量: cin >> X >> Y;
  2. if (Y = 1)1 分配Y 您要使用==檢查是否相等if (Y == 1)“如果Y等於1
  3. 不要在ifelsewhile塊之后放置分號。 它們是多余的,並且會導致此類錯誤。 僅在語句后放置分號。
  4. 不要把()后, else
  5. do-while循環是do { ... } while (...); do while (...) { ... } ,而while循環只是while (...) { ... }

這是正確的版本:

...
cin >> X >> Y; // 1.

if (Y == 1) { // 2.
    R = X;
} // 3.
else { // 4.
    while (Y > 0) { // 5.
        R = X * X;
        Y--;
    }

    // or if you want a do-while:
    do {
        R = X * X;
        Y--;
    } while (Y > 0); // semicolon here!
}

總之,選擇一本書以正確學習語言,這樣您就可以停止猜測正確的語法是什么。

這是因為if語句后有分號。 更正以下語句形式:

if(expression)
{
     // If Code
}
else
{
     // Else code
}
 if (Y = 1) {
        R = X;
 };

刪除最后一個“;” 這里。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM