変数を入れ替える
二つの変数の内容を入れ替える、ということをしてみたいと思います。たとえば、
num1 = 10;
num2 = 20;
のとき、num1を20にnum2を10にしたいわけです。どのようにすればいいでしょうか?
一見、
num2 = num1;
num1 = num2;
とすればいいように見えます。しかし、これでは最初の行 num2 = num1 を実行したときにnum1もnum2も10になってしまいます。ですから次の行 num1 = num2では10をnum1に代入することになり、両方とも10になってしまうわけです。
これを避けるためにはもう一つ変数を用意する必要があります。このようにちょっとした作業のために用意する変数を作業変数(作業領域)という呼び方をします。英語ではワーキングエリアです。
この作業変数にいったん変数の内容を保存しておきます。
work = num2;
workが作業変数として使う変数です。
作業変数にデータを残したわけですからnum2は上書きしてもかまわなくなりました。
num2 = num1;
その後、num1には保管しておいたworkから値を代入します。
num1 = work;
まとめると以下のようになります。
work = num2
num2 = num1
num1 = work
問題4-5
変数 kongetu に 31を 、変数 zengetu に 24を 代入し、この二つの変数を入れ替えてみよう。