C++のswitch文を使って四則演算対応の簡単な電卓プログラムを作成する方法
C++では、switch文(switch...case)を活用することで、足し算・引き算・掛け算・割り算の4つの演算に対応したシンプルな電卓プログラムを簡単に作成できます。この記事では、実際のサンプルコードと実行結果をもとに、その仕組みをわかりやすく解説します。
サンプルコード
#include <iostream>
using namespace std;
void calculator(int a, int b, char op) {
switch (op) {
case '+': {
cout<<"Sum of "<<a<<" and "<<b<<" is "<<a+b<<endl;
break;
}
case '-': {
cout<<"Difference of "<<a<<" and "<<b<<" is "<<a-b<<endl;
break;
}
case '*': {
cout<<"Product of "<<a<<" and "<<b<<" is "<<a*b<<endl;
break;
}
case '/': {
cout<<"Division of "<<a<<" and "<<b<<" is "<<a/b<<endl;
break;
}
default:
cout<<"Invalid Input"<<endl;
}
}
int main() {
calculator(5,4,'+');
calculator(10,3,'-');
calculator(3,2,'*');
calculator(20,5,'/');
calculator(5,2,'?');
return 0;
}
実行結果
Sum of 5 and 4 is 9 Difference of 10 and 3 is 7 Product of 3 and 2 is 6 Division of 20 and 5 is 4 Invalid Input
プログラムの仕組み
上記のプログラムでは、calculator() という関数を定義し、2つの数値に対する加算・減算・乗算・除算をまとめて処理しています。演算の分岐にはswitch文を使用しています。この関数は、「演算対象となる2つの数値」と「実行する演算の種類を表す文字」の合計3つの引数を受け取ります。
void calculator(int a, int b, char op)
switch文の中には4つのcaseと1つのdefaultが用意されており、渡された演算子に応じて適切な処理へ分岐する仕組みです。それぞれのcaseの動きを見ていきましょう。
① 加算:case '+'
最初のcaseは足し算を行う場合に使われます。2つの数値を加算し、その合計を出力します。
case '+': {
cout<<"Sum of "<<a<<" and "<<b<<" is "<<a+b<<endl;
break;
}
② 減算:case '-'
2番目のcaseは引き算を行う場合に使われます。2つの数値を減算し、その差を出力します。
case '-': {
cout<<"Difference of "<<a<<" and "<<b<<" is "<<a-b<<endl;
break;
}
③ 乗算:case '*'
3番目のcaseは掛け算を行う場合に使われます。2つの数値を乗算し、その積を出力します。
case '*': {
cout<<"Product of "<<a<<" and "<<b<<" is "<<a*b<<endl;
break;
}
④ 除算:case '/'
4番目のcaseは割り算を行う場合に使われます。2つの数値を除算し、その商を出力します。
case '/': {
cout<<"Division of "<<a<<" and "<<b<<" is "<<a/b<<endl;
break;
}
⑤ 無効な入力:default
default句は、'+', '-', '*', '/' 以外の無効な演算子が渡された場合に処理されます。この例では「Invalid Input」と表示して入力が不正であることを知らせます。
default:
cout<<"Invalid Input"<<endl;
main()からの呼び出し
main()関数内では、異なる演算子やオペランドを指定してcalculator()を複数回呼び出しています。最後の呼び出しでは意図的に無効な演算子 '?' を渡しており、default句が正しく機能することを確認できます。
calculator(5,4,'+'); calculator(10,3,'-'); calculator(3,2,'*'); calculator(20,5,'/'); calculator(5,2,'?');
補足:より実用的な電卓にするためのポイント
このサンプルは整数型(int)を使用しているため、割り算の結果は小数点以下が切り捨てられます。また、0で除算しようとすると実行時エラーになる可能性があります。実用的なプログラムにするには、double型の使用や、除算前に「b == 0」のチェックを追加することをおすすめします。さらに、cinによるユーザー入力を受け付けるようにすれば、対話型の電卓として発展させることができます。
-
C++プログラムから外部アプリケーション(メモ帳など)を起動する方法
この記事では、C++プログラムを使ってメモ帳(Notepad)などのサードパーティ製アプリケーションを起動する方法を解説します。実装は非常にシンプルで、コマンドプロンプトで使うコマンドをそのままC++から呼び出すだけで実現できます。ポイントとなるのは、標準ライブラリの system() 関数です。この関数の引数にアプリケーション名(コマンド)を文字列として渡すと、OSがそのコマンドを実行し、対応するアプリケーションが起動します。サンプルコード#include <iostream> using namespace std; int main() { cout <<
-
【Java入門】switch〜case文を使って簡単な電卓プログラムを作る方法
この記事では、switch〜case文を使って簡単な電卓プログラムを作成する方法を解説します。switch文は式を評価し、その値がどのcase句と一致するかを調べて、一致したcaseに関連付けられた処理を実行します。条件分岐が多くなる場合、if-else文を何度も書き並べるよりも、switch文の方がすっきりと読みやすいコードになるのが特徴です。 実装する算術演算 今回作成する電卓プログラムは、次の5種類の演算に対応しています。 + : 加算(足し算) - : 減算(引き算) * : 乗算(掛け算) / : 除算(割り算) % : 剰余(割り算の余り) 入出力の例 入力 たとえば、次のよ