C言語 default文の使い方

この記事のポイント

この記事では、default文について基礎から実用例まで詳しく説明します。プログラミング初心者の方でも理解できるよう、具体的なコード例を交えながら解説していきます。

  • switch文で条件に一致しない場合の処理を定義する機能
  • エラーハンドリングや例外処理での活用方法
  • 実際のプログラムでの効果的な使用パターン

これらのポイントを押さえることで、より安全で読みやすいプログラムを書けるようになります。

目次

default文とは?

default文は、switch文の中で使用される制御構文の一つです。switch文では、変数の値に応じて異なる処理を実行しますが、すべての条件に当てはまらない場合の処理を指定するために使用されます。

default文は省略可能ですが、予期しない値が入力された場合の安全な処理を実現するために活用されることが多いです。この機能により、プログラムの安定性が向上し、バグの発生を防ぐ効果があります。default文は必ず最後に記述するのが一般的で、どのcase文にも該当しない場合の処理をまとめて記述できます。

【関連】
C言語をもっと詳しく学ぶならpaizaラーニング

基本構文

default文は、switch文の中で以下のような構文で記述します。基本的な使い方を理解するために、まず簡単な例から見ていきましょう。この構文を覚えることで、さまざまな場面でdefault文を活用できるようになります。

#include <stdio.h> int main() { int number = 5; switch(number) { case 1: printf("1が選択されました\n"); break; case 2: printf("2が選択されました\n"); break; default: printf("1または2以外が選択されました\n"); break; } return 0; }

出力結果

1または2以外が選択されました

実用例

ここからは、default文を使った実践的なコード例を紹介します。実際のプログラミングでよく使われるパターンを中心に、さまざまな場面での活用方法を学んでいきましょう。これらの例を参考にすることで、自分のプログラムでも効果的にdefault文を使用できるようになります。

各例では、コードの動作を理解しやすくするため、実行結果も併記しています。実務でも役立つパターンを厳選してご紹介しますので、ぜひ参考にしてください。

曜日判定

数値を曜日に変換する例です。1から7までの数値を曜日として扱い、それ以外の値にはエラーメッセージを表示します。

#include <stdio.h> int main() { int day = 8; switch(day) { case 1: printf("月曜日\n"); break; case 2: printf("火曜日\n"); break; case 3: printf("水曜日\n"); break; case 4: printf("木曜日\n"); break; case 5: printf("金曜日\n"); break; case 6: printf("土曜日\n"); break; case 7: printf("日曜日\n"); break; default: printf("無効な曜日番号です\n"); break; } return 0; }

出力結果

無効な曜日番号です

グレード評価

学生の成績を文字で評価し、対応するメッセージを表示する例です。予期しない文字が入力された場合の処理も含まれています。

#include <stdio.h> int main() { char grade = 'X'; switch(grade) { case 'A': printf("優秀です\n"); break; case 'B': printf("良好です\n"); break; case 'C': printf("普通です\n"); break; case 'D': printf("不十分です\n"); break; case 'F': printf("不合格です\n"); break; default: printf("無効な評価です\n"); break; } return 0; }

出力結果

無効な評価です

電卓機能

四則演算を行う簡単な例です。未対応の演算子が入力された場合、適切なエラーメッセージを表示します。

#include <stdio.h> int main() { int a = 10, b = 5; char operator = '%'; switch(operator) { case '+': printf("結果: %d\n", a + b); break; case '-': printf("結果: %d\n", a - b); break; case '*': printf("結果: %d\n", a * b); break; case '/': printf("結果: %d\n", a / b); break; default: printf("未対応の演算子です\n"); break; } return 0; }

出力結果

未対応の演算子です

動物の鳴き声

動物の種類に応じて鳴き声を表示する例です。登録されていない動物の場合は、汎用的なメッセージを出力します。

#include <stdio.h> int main() { int animal = 5; switch(animal) { case 1: printf("イヌ: ワンワン\n"); break; case 2: printf("ネコ: ニャーニャー\n"); break; case 3: printf("ウシ: モーモー\n"); break; case 4: printf("ブタ: ブーブー\n"); break; default: printf("不明な動物の声です\n"); break; } return 0; }

出力結果

不明な動物の声です

メニュー選択

ユーザーがメニューから選択肢を選ぶ例です。範囲外の選択肢が入力された場合の対処法を示しています。

#include <stdio.h> int main() { int choice = 9; switch(choice) { case 1: printf("ファイルを開く\n"); break; case 2: printf("ファイルを保存\n"); break; case 3: printf("設定を変更\n"); break; case 4: printf("プログラムを終了\n"); break; default: printf("無効な選択です。1-4を選んでください\n"); break; } return 0; }

出力結果

無効な選択です。1-4を選んでください

季節判定

月の数値から季節を判定する例です。1から12以外の値が入力された場合のエラーハンドリングも実装されています。

#include <stdio.h> int main() { int month = 13; switch(month) { case 12: case 1: case 2: printf("冬\n"); break; case 3: case 4: case 5: printf("春\n"); break; case 6: case 7: case 8: printf("夏\n"); break; case 9: case 10: case 11: printf("秋\n"); break; default: printf("無効な月が入力されました\n"); break; } return 0; }

出力結果

無効な月が入力されました

信号機の状態表示

交通信号の色に対応した行動を表示する例です。想定外の状態値に対しても適切に対応できる設計になっています。

#include <stdio.h> int main() { int signal = 4; switch(signal) { case 1: printf("赤信号: 止まれ\n"); break; case 2: printf("黄信号: 注意\n"); break; case 3: printf("青信号: 進め\n"); break; default: printf("信号機が故障しています\n"); break; } return 0; }

出力結果

信号機が故障しています

まとめ

default文は、switch文において想定外の値が入力された場合の処理を定義する機能です。この機能を適切に活用することで、プログラムの安定性と可読性を大幅に向上させることができます。今回紹介したコード例を参考に、自分のプログラムでも積極的に活用してみてください。

default文の活躍する場面

  • ユーザー入力の検証処理における無効な値の検出
  • メニュー選択システムでの範囲外選択の対処
  • 設定値の妥当性チェックでのエラーハンドリング

重要なポイント

  • switch文での予期しない値への対処が可能
  • プログラムの堅牢性を高める効果的な手法
  • コードの可読性と保守性を向上させる役割

これらのポイントを理解し、実際のプログラミングで活用することで、より品質の高いC言語プログラムを作成できるようになります。default文は基本的な機能ですが、適切に使用することでプログラムの完成度を大きく向上させる要素となります。

レベルを更に上げたい方はpaizaプログラミングスキルチェックへ

  1. paizaラーニングトップ
  2. リファレンス
  3. C言語のリファレンス記事一覧
  4. C言語 default文の使い方