C/C++学習 · 4 min read · Oct 12, 2025
C/C++を段階的に学ぶ - ページ4
04. 段階的C/C++ — Cプログラミング - 条件文
| | 1. 条件文の紹介:
- if..else
- switch |
1. 条件文の紹介:
コンピュータは、算術演算と論理的判断を行うことができる電子機器です。
この時点で、コンピュータは算術演算しか行えない普通の計算機とは大きく異なります。
条件文(if-elseやswitchなど)を使用して、与えられた2つの値の中で最大の値を求めることができます。
2. if..else
これは、2つの式の間の変動を見つけるための条件文です。
| |
構文:
if (
{
else
{
すべてのifには条件と2つのステートメントブロックがあります。条件が真であれば最初のステートメントブロックが実行され、それ以外の場合は逆になります。
| | 例:
If( a>b )
printf(“Aは大きい”);
else
printf(“Bは大きい”); |
注意: 単一のステートメントにはブロックは必要ありません。
- 2つの値の中で最大の値を見つけるプログラム
/ 12_if.c /
#include
int main()
{ / 開始 /
int a, b; / 変数の宣言 /
printf(“\nAの値を入力してください: “); scanf(“%d”, &a); / 値Aを読み取る /
printf(“\nBの値を入力してください: “); scanf(“%d”, &b); / 値Bを読み取る /
if( a>b ) / 両方を比較 /
printf(“Aは大きい”);
else
printf(“Bは大きい”); / 結果を表示 /
return 0;
} / 終了 /
これはC++およびCプログラミング言語の演算子のリストです。リストされているすべての演算子はC++に存在します。
参照: http://en.wikipedia.org/wiki/Operators_in_C_and_C++
算術演算子
| 演算子 | 目的 |
| + | 加算 |
| - | 減算 |
| * | 乗算 |
| / | 除算 |
| % | 整数除算後の余り(剰余) |
単項演算子
| 演算子 | 目的 |
| - | マイナス(負の数) |
| ++ | インクリメント(1増加) |
| – | デクリメント(1減少) |
| sizeof | サイズ(バイト単位) |
| ( type) | キャスト |
関係演算子
| 演算子 | 目的 |
| < | より小さい |
| <= | 以下 |
| > | より大きい |
| >= | 以上 |
等価演算子
| 演算子 | 目的 |
| == | 等しい |
| != | 等しくない |
論理演算子
| 演算子 | 目的 |
| && | AND |
| || | OR | | ! | NOT |
ビット操作演算子
| 演算子 | 目的 |
| & | AND |
| | | OR | | ~ | NOT | | ^ | XOR | | << | 左シフト | | >> | 右シフト |
演算子の優先順位グループ
| 演算子カテゴリ | 演算子 | 結合性 |
| 単項演算子 | - ++ – ! sizeof ( type) | 右から左 |
| 算術の乗算、除算、剰余 | * / % | 左から右 |
| 算術の加算と減算 | + - | 左から右 |
| 関係演算子 | < <= > >= | 左から右 |
| 等価演算子 | == != | 左から右 |
| 論理演算子 | && || | 左から右 | | 条件演算子 | ? : | 右から左 | | 代入演算子 | = += -= *= /= %= | 右から左 |
さらなる演習
さらなる演習の理由は、学んだ文に慣れるためです。自信がある場合は、以下のプログラムを実行する必要はありません。
/ 01. 以下の詳細から人の年齢を見つけるプログラム /
/ age <= 12 子供の年齢
age >= 13 and age <= 19 ティーンエイジャーの年齢
age >= 20 and age <= 35 若い年齢
age >= 36 and age < 50 中年
age >= 50 高齢者 /
/ 13_age.c /
#include
int main()
{
char name[20];
int age;
clrscr();
print “あなたの名前を入力してください”; input name;
print “あなたの年齢を入力してください”; input age;
printf(“\n%s あなたは “);
if ( age <= 12 ) printf(“子供の年齢”);
if ( age >= 13 and age <= 19 ) printf(“ティーンエイジャーの年齢”);
if ( age >= 20 and age <= 35 ) printf(“若い年齢”);
if ( age >= 36 and age < 50 ) printf(“中年”);
if ( age >= 50 ) printf(“高齢者”);
return 0;
}
/ 02. 3つの値の中で最大の値を見つけるプログラム /
/ 14_big3.c /
#include
#include
int main()
{
int a, b, c;
clrscr();
printf(“Aの値を入力してください”); scanf(“%d”, &a);
printf(“Bの値を入力してください”); scanf(“%d”, &b);
printf(“Cの値を入力してください”); scanf(“%d”, &c);
if( a > b && a > c ) printf( “Aは大きい “ );
if( b > a && b > c ) printf( “Bは大きい “ );
if( c > a && c > b ) printf( “Cは大きい “ );
return 0;
}
/ 03. if..elseを使用して3つの値の中で最大の値を見つけるプログラム /
/ 15_big3.c /
#include
#include
int main()
{
int a, b, c;
clrscr();
printf(“Aの値を入力してください”); scanf(“%d”, &a);
printf(“Bの値を入力してください”); scanf(“%d”, &b);
printf(“Cの値を入力してください”); scanf(“%d”, &c);
if( a > b && a > c )
printf( “Aは大きい “ );
else
if ( b > c )
printf( “Bは大きい “ );
else
printf( “Cは大きい “ );
return 0;
}
/ 04. ネストされたifを使用して3つの値の中で最大の値を見つけるプログラム /
/ 16_big3.c /
#include
#include
int main()
{
int a, b, c;
clrscr();
printf(“Aの値を入力してください”); scanf(“%d”, &a);
printf(“Bの値を入力してください”); scanf(“%d”, &b);
printf(“Cの値を入力してください”); scanf(“%d”, &c);
if( a > b )
if( a > c )
printf(“ Aは大きい “);
else
printf(“ Cは大きい “);
else
if( b > c )
printf(“ Bは大きい “);
else
printf(“ Cは大きい “);
return 0;
}
/ 05. 与えられた数から曜日を見つけるプログラム /
/ 17_week.c /
#include
int main()
{
int week;
printf(“週番号を入力してください”); scanf(“%d”, &week);
if (week == 1 ) printf (“日曜日”);
if (week == 2 ) printf (“月曜日”);
if (week == 3 ) printf (“火曜日”);
if (week == 4 ) printf (“水曜日”);
if (week == 5 ) printf (“木曜日”);
if (week == 6 ) printf (“金曜日”);
if (week == 7 ) printf (“土曜日”);
if ( week < 1 || week > 7 ) printf(“不正な日”);
return 0;
}
3. switch
複数の条件文は、1つ以上の式の変動をチェックする能力があります。
構文:
| | switch(
{
case
case
……
Default :
} |
例:
| | switch(week)
{
case 1 : printf( “日曜日”); break;
case 2 : printf(“月曜日”); break;
.
.
case 7: printf(“土曜日”); break;
default : printf(“不正な入力”);
} |
/ 06. switch文を使用して与えられた数から曜日を見つけるプログラム /
/ 18_switch.c /
#include
int main()
{
int week;
printf(“週番号を入力してください”); scanf(“%d”, &week);
switch(week)
{
case 1 : printf (“日曜日”); break;
case 2 : printf (“月曜日”); break;
case 3 : printf (“火曜日”); break;
case 4 : printf (“水曜日”); break;
case 5 : printf (“木曜日”); break;
case 6 : printf (“金曜日”); break;
case 7 : printf (“土曜日”); break;
default : printf(“不正な入力”);
}
return 0;
}
新しい投稿を受信箱で受け取る
スパムはありません。いつでも購読を解除できます。