Xcodeのswitch文で「Expected expression」エラー

Xcodeでswitch文を使っていて「Expected expression」エラーが
出ることがあります。

「Expected expression」エラーは全角文字やスペースなどが
どこかに書かれていると出ることがありますが、switch文の場合は
caseの中で変数を宣言しているだけでエラーが出ます。

■「Expected expression」エラーが出る例文

	switch (status){
        case 1:
            int num;
            num = 1;
            break;
        case 2:
            int num = 2;
            break;
        default:
            break;
    }

解決方法としてはswitch文のcase内の変数宣言で
エラーになるので変数の宣言をswitch文の前で宣言するか
{}でくくると「Expected expression」エラーが出なくなります。

■解決方法1:switchの外で変数を宣言する

int num;
	switch (status){
        case 1:
            num = 1;
            break;
        case 2:
            num = 2;
            break;
        default:
            break;
    }

■解決方法2:構文を{}でくくる

	switch (status){
        case 1:
            {
                int num;
                num = 1;
            }
            break;
        case 2:
			{
            	int num = 2;
			}
            break;
        default:
            break;
    }
タイトルとURLをコピーしました