以下はSystem.out.println()によって「計算の過程での変数の値の動きの確認」をする場合の、ソースコードの一例です。

このソースコードをコンパイルしたアプレットは、http://www.sfc.keio.ac.jp/~tsaito/tmp/PrintTest02.htmlにあります。次のコマンドによってappletviewerを起動し、その動作を確認して下さい。

% appletviewer http://www.sfc.keio.ac.jp/~tsaito/tmp/PrintTest02.html &

サンプル・コード

/**
** プログラミング入門・ミニプロの作業を助けるサンプルプログラム・その2
** 「System.out.println();による変数の値の確認」
** 作成日:02/01/05
** 概要:System.out.println();の引数に整数型の変数を与えることによって、
** その変数の各時点での値をリアルタイムに確認することができる
** 
**/
import java.applet.Applet;
import java.awt.*;
import java.awt.event.*;
public class PrintTest02 extends Applet implements ActionListener,Runnable{

	int x,y;
	boolean stopFlag;
	Thread th;

	/*initメソッドの定義*/
	public void init(){
		Button b1 = new Button("Start");
		b1.setActionCommand("YAMA");
		b1.addActionListener(this);
		Button b2 = new Button("Stop");
		b2.setActionCommand("KAWA");
		b2.addActionListener(this);
		add(b1);
		add(b2);
		x=0; y=50;
		stopFlag=false;
	}

	/*startメソッドの定義*/	
	public void start(){
		System.out.println("start called");	// startメソッドが呼び出されると、
							// コンソールウインドウにstart calledと表示される
		if(th==null){
			th=new Thread(this);
			stopFlag=false;
			th.start();
		}
	}

	/*stopメソッドの定義*/	
	public void stop(){
		System.out.println("stop called");	// stopメソッドが呼び出されると、
							// コンソールウインドウにstop calledと表示される
		if(th!=null){
			stopFlag=true;
			th=null;
		}
	}

	/*paintメソッドの定義*/	
	public void paint(Graphics g){
		g.setColor(Color.blue);
		g.fillOval(x,y,20,20);
		System.out.println("x = " + x);		// paint実行時の変数xの値が表示される
							// 変数xの値とは、このプログラムの場合、
							// 表示される青い円のその都度のx座標の値に該当する
	}

	/*runメソッドの定義*/
	public void run(){
		while(true){
			x=x+5;
			if(x >= 300){
				x=0;
			}
			repaint();
			try{
				Thread.sleep(100);
			}
			catch(InterruptedException e){
			}
			// 無限ループからの脱出(スレッドが停止した場合)
			if(stopFlag==true){
				break;
			}
		}
	}

	/*actionPerformedメソッドの定義*/	
	public void actionPerformed(ActionEvent e){
		System.out.println("actionPerformed called");	// actionPerformedメソッドが呼び出されると、
								// コンソールウインドウにactionPerformed calledと表示される
		String c = e.getActionCommand();
		if(c.equals("YAMA")){
			start();
		}
		else if (c.equals("KAWA")){
			stop();
		}
	}
}


> 本文に戻る