研修2日目


データ型

public class Test008 {
	public static void main( String[] args ) {
		System.out.println( 10.0 + 10.0 ); // 20.0
		System.out.println( 10 + 10 );
		System.out.println( 10.0 / 3.0 );  // 3.33xxx..5
		System.out.println( 10 / 3 );	   // 3
	}
}
Javaでは実数の代表はdouble,整数の代表はintである.
double + double = double
int + int = int
10.0 / 3.0 == 3.333333 ???
上の結果はtrueかもしれないしfalseかもしれない.
どうして.
実数型変数は、正確な値ではなく、「計算機が表現できる最高近似値」を表します.資料型には一定の大きさがあり、保存できる値は限られている.このため,計算を誤った場合には正確な結果を期待することは困難である.
「コンピュータは基本的に同じタイプの資料型間で演算されます.」( ALU )
int * int = int
int - int = int
double/double = double
public class Test009 {
	public static void main( String[] args ) {
		System.out.println( 10 + 10.0 );   //20.0
		System.out.println( 10.0 + 10 );   //20.0
		System.out.println( 10 + (int)10.0 );  //20
	}
}
008号コード説明では基本的に同じタイプの資料型間演算であり、資料型が異なるとサイズの小さい資料型(int)が自動的に大きな資料型(double)に変換される.
int + double => double + double = double

複文

public class Test010{
	public static void main( String[] args){	
		for(int i = 0; i < 5; i++){
			System.out.println( i );
		}
        //
		for( int j = 0; j < 3; j++){
			for( int k = 0; k < 2; k++){
				System.out.println("Helloworld");
			}
		}
	}
}

[1]領域にiという変数を宣言します.
[2]エリアで条件をチェックし、本当なら[4]に移動します.
[4]実行領域のコード、
[3]領域に移動し、iを増減し、[2]領域検査条件に移動する.
[1] - [2] - [4] - [3] - [2] - [4] - [3] ... 繰り返し
[2]領域内の条件が偽の場合、重複文を終了します.
  • この時点で[1]領域で宣言されたiは[4]領域でのみ使用可能である.
  • // 별찍기
    public class Test011 {
    	public static void main( String[] args ) {
    		int len = 4;
    		for( int i = 0 ; i < len ; i++ ) {
    			for( int j = 0; j < (i+1) ; j++ ) {
    				System.out.print("*");
    			}
    			System.out.println("");
    		}
    		for( int i = 0 ; i < (len-1) ; i++ ) {
    			for( int j = 0; j < (len-1-i) ; j++ ) {
    				System.out.print("*");
    			}
    			System.out.println("");
    		}
    	}
    }