制御文について

switch文

条件による分岐処理にはif文と、ここで挙げるswitch文があります。他には「switch~case文」と呼ばれる場合もあります。if文は1つの条件による分岐で、複数の場合は「else if」を列挙していく形になりますが、このswitch文の場合には、判定対象となる値を複数のパターンで処理に振り分けることができます。

  switch ( ans ){

    case 0:

      printf(“ansは0です。\n”);

      break;

    case 1:

      printf(“ansは1です。\n”);

      break;

    default:

      printf(“ansはその他です。\n”);

      break;

  }

上記でわかるように、パターンを並列し処理を振り分けることが出来ます。switch内で指定された変数の値がcaseで示されるものに該当した場合には、そのあとに記述された処理が行われ、どれにも当てはまらない場合にはdefaultに記述された処理が行なわれます。forやwhileで出てきたbreakが多用されていますが、breakには{}を抜けるという意味があるので、whileでも使用することができます。

  switch ( ans ){

    case 0:

      printf(“ansは0です。\n”);

    case 1:

      printf(“ansは1です。\n”);

      break;

        (・・・中略・・・)

  }

このようにbreakを付けずに並べた場合には、ansが0だった場合には「ansは0です。」と「ansは1です。」が出力されてしまいますので、行ないたい処理によって適宜breakを使用するようにしてください。逆に条件が複数の場合は、breakを除いて並列することにより、複数条件により同じ処理を実行することが可能です。

  switch ( ans ){

    case 0:

    case 1:

      printf(“ansは0か1です。\n”);

       break;

    case 2:

      printf(“ansは2です。\n”);

       break;

    default:

      printf(“ansはその他です。\n”);

      break;

  }

この場合には、ansが0か1の場合には「ansは0か1です。」が出力され、2の場合には「ansは2です。」、それ以外の場合には「ansはその他です。」が出力されます。