c++ifcase

条件分岐


条件分岐とは、
ある条件のときに処理Aをし、それ以外の場合は処理Bを行う。
と言ったような条件に合わせた処理を行うときに使う。
条件分岐には主に2通りある。

if文

if文は条件分岐の代表的なもの。記述方法は以下である。
if([条件式])
{
    文
}

また、if-else if-else文というのもありこれが以下である。
if([条件式1])
{
    文1
}
else if([条件式2])
{
    文2
}
else
{
    文3
}

日本語で説明すればわかりやすいと思うので
1つのプログラムを例に挙げる。

例)スコアを入力して出力するプログラム。
ただし、スコアは100以下0以上の数値である。
この範囲外のものはエラーとする。
#include<iostream>
using namespace std;

int main()
{
    int score;
    cin>>score;    //入力

    if(score>100)    //もしスコアが100を超えるものならば
    {
        cout<<"エラー:上限を超えています"<<endl;    //エラー
    }
    else if(score<0)    //もしスコアが0未満ならば
    {
        cout<<"エラー:下限を超えています"<<endl;    //エラー
    }
    else    //それ以外の場合は
    {
        cout<<"今回の得点は"<<score<<"です!"<<endl;    //スコア出力
    }

    return 0
}

ifは直訳のまま「もしも」elseは「それ以外」と考えてよい。
間違いやすい点として、条件式の演算子を間違えるパターンが多い。
また、{}も忘れがちになるが、次のような場合は{}無しでも通る。
if(a<10)
    cout<<"10未満"<<endl;
else
    cout<<"10以上"<<endl;
といった実行文が1行だけの場合は{}無しで書くことが可能である。

switch文

条件分岐の1つ。数多くの分岐にはとても便利か。とりあえずは記述例。
switch([変数名])
{
    case 値1:
        処理1;
        break;
    case 値2:
        処理;
        break;
      ・
      ・
      ・
    default:
        処理3;
        break;
}
switchの後ろの変数の値によって条件分岐を行う。
caseの後ろに条件となる値を書く。つまり、変数に入ったデータが
caseの後ろと合致したとき、合致したところの処理を行うということ。
defaultはどの値とも異なったときに分岐する。いわばelse。
breakはその文を抜けるために使う。{}から抜ける感じ。

if文を使うまでもないような分岐を1行でできるものがある。
if(x<y)    return x;
else       return y;
のようなものだとこのように書くことも可能。
return x<y?x:y;

練習問題


問1)aとbに任意の値を入力し、大きい方を出力するプログラム
問2)点数を入力して出力するプログラム
ただし、点数は100以下0以上である。それ以外の数値を入力するとエラーを出力する。
問3)入力された年数がうるう年がどうか判定するプログラム
ヒント:
*うるう年とは…
4で割り切れる年はうるう年である
100でも割り切れる年はうるう年でない
400でも割り切れる年はうるう年である
最終更新:2012年05月31日 17:13