-1

if に従う場合、else を使用できない理由を説明できる人はいますか? エラーは期待される式を言っていますが、それが何を意味するのかわかりません

// 変数を整数として宣言 int account, depAmount, withAmount;

    Account *Account1=[[Account alloc] init];

    // Prompt user to input account number
    NSLog(@"Please input your account number here: ");
    scanf("%i", &account); // Accept user input

    if (account==1000)
        NSLog(@"How much do you want to deposit: ");
        scanf("%i", &depAmount);

        [Account1 setaccountNumber: account];
        [Account1 setbegBalance: 900.50];
        [Account1 addDeposit: depAmount];

        NSLog(@"How much do you want to withdrawl: ");
        scanf("%i", &withAmount);
        [Account1 setnewbegBalance: 900.50 + depAmount];
        [Account1 subtractWithdrawal: withAmount];

    NSLog(@"Your account number is: %i\nBeginning balance: %f\nNew balance is: %f", [Account1 accountNumber], [Account1 begBalance], [Account1 newBalance]);

    else if (account==2000)
        NSLog(@"How much do you want to deposit: ");
        scanf("%i", &depAmount);

        [Account1 setaccountNumber: account];
        [Account1 setbegBalance: 700.75];
        [Account1 addDeposit: depAmount];

        NSLog(@"Your account number is: %i\nBeginning balance: %f\nNew balance is: %f", [Account1 accountNumber], [Account1 begBalance], [Account1 newBalance]);

    else if (account==3000)
        NSLog(@"How much do you want to deposit: ");
        scanf("%i", &depAmount);
4

3 に答える 3

2

if 条件の一部として実行する命令には中括弧が必要です。中括弧がない場合は、if ステートメントに続く 1 つのステートメントのみが実行されます。したがって、次のような中括弧を追加します。

if (account==1000)
{
    NSLog(@"How much do you want to deposit: ");
    scanf("%i", &depAmount);

    [Account1 setaccountNumber: account];
    [Account1 setbegBalance: 900.50];
    [Account1 addDeposit: depAmount];

    NSLog(@"How much do you want to withdrawl: ");
    scanf("%i", &withAmount);
    [Account1 setnewbegBalance: 900.50 + depAmount];
    [Account1 subtractWithdrawal: withAmount];

NSLog(@"Your account number is: %i\nBeginning balance: %f\nNew balance is: %f", [Account1 accountNumber], [Account1 begBalance], [Account1 newBalance]);
}
于 2013-02-11T04:08:39.587 に答える
1

のブロックを囲む中括弧がありませんif。ブロック内に複数のステートメントがある場合は、すべてのステートメントを中かっこで囲む必要があります。Python などの他のプログラミング言語とは異なり、Objective C のインデントは重要ではありません。関連するブロック内のステートメントのすべてのグループ化は、中括弧によって行われます。

于 2013-02-11T04:06:43.473 に答える
0

anifと andの間elseには 1 つのステートメントのみが必要です。

あなたの**one statementはすることができます

A.) 単一のステートメントa = b;
B.) ブロックにグループ化された複数のステートメント。

{
    a = b;
    b = 20;
}
于 2013-02-11T04:25:40.847 に答える