switch文からの抜け出し

フォーラム(掲示板)ルール
フォーラム(掲示板)ルールはこちら  ※コードを貼り付ける場合は [code][/code] で囲って下さい。詳しくはこちら
donnbee

switch文からの抜け出し

#1

投稿記事 by donnbee » 7年前

初めてここで質問させてもらうので不備があったらすいません。
現在、dxlibで作品を作ってるのですがswitch文から抜け出して前のswitch以外の文に戻ることは可能でしょうか・・・
goto文でやってみてもうまくいかずdxlibが終了してしまうだけです。
よろしければだれか教えてください・・・

かずま

Re: switch文からの抜け出し

#2

投稿記事 by かずま » 7年前

donnbee さんが書きました:
7年前
初めてここで質問させてもらうので不備があったらすいません。
不備は、「goto文でやってみてうまくいか」ないコードを
示していないことです。
患者が患部を見せずに、医者が正しい診断をするのは難しい
と思いませんか?

switch文から抜け出すには、break 以外に、
goto, return, continue などがあります。

コード:

#include <stdio.h>

void func(int n)
{
    for (int i = 0; i < 1; i++) {
        putchar('\n');
        switch (n) {
        case 1:
            puts("case 1: break;");
            break;
        case 2:
            puts("case 2: goto dest;");
            goto dest;
        case 3:
            puts("case 3: return; // 関数を抜ける");
            return;
        case 4:
            puts("case 4: continue; // for文の i++ に飛ぶ");
            continue;
        }
        puts("  switch文の次の文");
    }
    puts("  for文の次の文");
dest:
    puts("  最後の文");
}

int main(void)
{
    for (int i = 1; i <= 4; i++)
        func(i);
    return 0;
}
実行結果

コード:


case 1: break;
  switch文の次の文
  for文の次の文
  最後の文

case 2: goto dest;
  最後の文

case 3: return;  // 関数を抜ける

case 4: continue; // for文の i++ に飛ぶ
  for文の次の文
  最後の文

返信

“C言語何でも質問掲示板” へ戻る