2016-12-27 5 views
-3

使用してコーディングで初心者から簡単な質問OBJ-C ...このコードで ルック:OBJ-Cでのステートメントが予想される場合、式のエラー

**int main(int argc, const char * argv[]) { 
@autoreleasepool { 
    // insert code here... 
    //NSLog(@"Hello, World!"); 

    int a,b; 

    a = 5; 
    b = 6; 
    if (a ==b) NSLog(@ "a is equal to b"); 
    if (a !=b) NSLog(@ " a is not equal to b"); 
    if (a > b) NSLog(@ " a is greater that b"); 
    if (a < b) NSLog(@ " a is less than b"); 
    if (a >= b) NSLog(@ " a is greater of equal to b"); 
    if (a <= b) NSLog(@ " a is less or equal to b"); 
    if (!(a == b)) NSLog(@ " a is not (Equal to b)"); 
    if ((a == b) || (a =-- b)) NSLog(@ " a is equal to be, or a is equal to -- b"); 
    if ((a <= b) && (a < ++b)) NSLog(@ " a is less than or equal to b, and a is less than ++b"); 
    if (a == b) NSLog(@" a is equal to b"); 

    if (a == b); { 

     NSLog(@" a is equal to b"); 
    } 

    else NSLog (@ " a is not equal to b"); 

    BOOL z = (a == b); 
    if (!z) NSLog(@ " a is not (equal to b)"); 
    BOOL y = (a > b); 
    if (y != YES) NSLog(@ " a is NOT (greater than b"); 
    return 0; 
    } 
}** 

私はelseステートメントでエラーを取得しています、期待される表現を言う。 ここで何が間違っていますか?私は何が欠けていますか? Xcodeのバージョン8.2.1

+1

コードをコピーすると、既にXcodeで警告が表示されています。あなたのnslogの最初のスペースには、@ "の間に空白があります。これはif-elseブロックを示す前にif条件をすでに終了しています。 – Joshua

+0

セミコロンが間違っています – Avi

答えて

0

問題のコードを使用すると、ここにある:

if (a == b); { 

    NSLog(@" a is equal to b"); 
} 

else NSLog (@ " a is not equal to b"); 

セミコロン(;)はヌル文であるため、最初の行は

if (a == b) {} { 

に相当します。これにより、if()は単一ステートメントの条件に変わります。次の開きブレースは、もは​​やif()ステートメントの一部ではなく、独立した新しいブロックを開始しています。

これにより、else { ... }if()ステートメントの一部にならないため、無効です。

+0

私はこの文を書く必要があります....? –

+0

私はそれが紳士を持っていると思う.... –

関連する問題