第12講 並び替えの方法その1
第2話 交換プログラム
a=1;
b=2;
のデータを交換するにはどうしたらよいでしょうか。
うっかりすると次のプログラムでよいような気がします。
class a{ //EclipseによるJava入門の場合はpublic class A{など 以下同様
  public static void main(String args[]){
    int a,b;
    a=1;
    System.out.println("a="+a);
    b=2;
    System.out.println("b="+b);
    a=b;
    b=a;
    System.out.println("a="+a);
    System.out.println("b="+b);
  }
}
ところが実行画面は、
入門
となってしまいます。

なぜでしょうか。
Javaでは、変数とは値を入れる箱でした。
そして、個の箱には値は1個しか入れられません。
別の値を入れるともともとの値は出て行ってしまいます。
値の動き
そして、値は箱の中でしか生きることが出来ませんので、
箱から出ると消滅してしまいます。
この例だと1は消滅してしまいます。
そして、aにはbの値2が入っています。
すると、次のb=aはまったく意味がありません。

そこで、aの値を一時保存しておく、もう一つの箱wを用意する必要があります。
a=8
b=3

箱asd
w=a
保存箱箱箱b
a=b

保管交換後bの値

b=w

aereee

これなら、交換がうまくいきます。
ここの学習のポイントは、一時値を入れておく箱の用意です。
class a{
  public static void main(String args[]){
    int a,b,w;
    a=8;
    System.out.println("a="+a);
    b=3;
    System.out.println("b="+b);
    w=a;
    a=b;
    b=w;
    System.out.println("a="+a);
    System.out.println("b="+b);
  }
}
実行画面
Java

では
Java
このようにランダムデータを発生させる関数fと降順に並び替える関数gを考えましょう。




第1話へ 第3話へ

戻る

VB講義へ
VB講義基礎へ
vc++講義へ第1部へ
初心者のための世界で一番わかりやすいVisual C++入門基礎講座
初心者のための世界で一番わかりやすいVisual Basic入門基礎講座

初心者のための世界で一番わかりやすいVBA入門講義(基礎から応用まで)
初心者のための VC++による C言語 入門 C++ 入門 基礎から応用まで第1部
初心者のための VC++による C言語 入門 C++ 入門 基礎から応用まで第2部
初心者のための VC++による C言語 入門 C++ 入門 基礎から応用まで第3部