2012年10月31日 星期三

透過鍵盤輸入做運算

1.BufferedReader 輸入

import java.io.IOException;
import java.io.BufferedReader;
import java.io.InputStreamReader;

public class Test{

    public static void main(String[] args)throws IOException{
  
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));


//這邊讓畫面顯示出輸入第幾個數字,方便識別
        System.out.println("請輸入第一個數");
        String str1 = br.readLine();
        System.out.println("請輸入第二個數");
        String str2 = br.readLine();

//將輸入的數值轉換成int值
        int num1 = Integer.parseInt(str1);
        int num2 = Integer.parseInt(str2);
        int sum = num1+num2;


        System.out.println("第一個數是" + num1);
        System.out.println("第二個數是" + num2);
        System.out.println("兩者相加是" + sum);
  
    }

}
由於變數宣告都是統一寫在一起,因此一旦輸入非數字,在最後運算結果的時候就會跳出錯誤的訊息
但是如果寫成如下:
        String str1 = br.readLine();
        System.out.println("請輸入第二個數");
         int num1 = Integer.parseInt(str1);
 便會在一開始輸入值就產生錯誤

2.Scanner 輸入

import java.util.Scanner;

public class Test{

    public static void main(String[] args){
 

        System.out.println("請輸入第一個數");
        Scanner a = new Scanner(System.in);
//這邊用int宣告可以確保輸入一定是數字
        int x =a.nextInt();

      
        System.out.println("請輸入第二個數");
        Scanner b = new Scanner(System.in);
        int y = b.nextInt();

        int sum = x + y;
        System.out.println("第一個數是"+x);

        System.out.println("第二個數是"+y);

        System.out.println("總和是"+sum);
 


    }

}
一旦輸入非數字,在第一個值就會跳出錯誤訊息

簡單的加法運算

以下用加法作範例

class Test{
    public static void main(String[] agrs){

//以下先宣告3個變數,分別是num1,num2,sum
        int num1 = 2;
        int num2 = 3;
        int sum = num1+num2;

//讓num1,num2.sum在畫面上顯示
        System.out.println("變數num1是" + num1);
        System.out.println("變數num2是" + num2);
        System.out.println("兩者相加是" + sum);
//當然也可以把運算式寫在輸出
        System.out.println("兩者相加是" + (num1+num2));

// 將num1的值再加1
        num1 = num1+1;

        System.out.println("變數num1加1以後是" + num1);

    }

}


2012年10月30日 星期二

從鍵盤輸入變數-2

從此處開始會使用到
import java.io.*;
 
import java.io.IOException;
import java.io.IOException;
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.util.Scanner;

在java程式中會使用到一些方法讓使用者可以透過鍵盤輸入變數數值,並且在畫面中列印出來讓使用者確認是否有得到結果

因此Compiler會先檢查再 rt.jar 檔案中的相對應位置,是否有需要的class檔案
例如:

 import java.io.IOException;

會檢查 rt.jar 的壓縮檔內,java\io 內是否有 IOException.class的檔案

從鍵盤輸入變數

可使用兩種方式
使用者可以自行輸入數值,並且在結果中列印出來

1.BufferedReader

import java.io.IOException;
import java.io.BufferedReader;
import java.io.InputStreamReader;

public class Test{

    public static void main(String[] args)throws IOException{
  
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));

        String str = br.readLine();

        System.out.println(str);

  
    }

}

使用了兩次變數,感覺上繞了一圈才完成

2.Scanner

import java.util.Scanner;

public class Test{

    public static void main(String[] args){
  
        Scanner a = new Scanner(System.in);

        System.out.println(a.next());

  
    }

}

只使用一次變數就完成

同樣的,要輸入兩個以上時,就宣告兩次輸入的指令就可以

1.
import java.io.IOException;
import java.io.BufferedReader;
import java.io.InputStreamReader;

public class Test{

    public static void main(String[] args)throws IOException{
  
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));

        String str1 = br.readLine();
        String str2 = br.readLine();

        System.out.println(str1);
        System.out.println(str2);

  
    }

}

2.
import java.util.Scanner;

public class Test{

    public static void main(String[] args){
  
        Scanner a = new Scanner(System.in);
        Scanner b = new Scanner(System.in);

        System.out.println(a.next());
        System.out.println(b.next());
  
    }

}

變數

變數可以當作假想的箱子 


宣告變數型態 宣告變數名稱 = 值;

byte a =10;        

short b = 10;


int c = 10;

long d = 10;

float e =2.1;

double f = 2.1;

宣告變數型態類似於設定一個假想箱子的大小 ,變數就可以放入相對應大小的東西

byte = 1 byte

short = 2 byte

int = 4 byte

long = 8 byte

float = 4 byte

double = 8 byte

簡單的進位換算

16進位的0061
 先換成2進位

0000 0000 0110 0001 =0061
8421 8421 8421 8421

換十進位

0000 0000   0      1     1    0    0  0  0  1   =總和97
                      128  64  32  16  8  4  2  1

2012年10月29日 星期一

常值-Literal

Literal 常值

常值的資料是寫死的

常值有4種型態

1.字元

2.字串

3.整數


4.浮點數


System.out.println( 'A' );           單引號表示字元,佔2個byte

System.out.println( 100 );         都沒有表示數值  整數,佔4個byte

System.out.println( 2.890 );      小數點表示浮點數,佔4或8個byte

System.out.println( '\'' );             \後面帶出特殊字元

System.out.println( '\\' );
 
System.out.println( "\u0061" );  \u後面為16進位數字
                                                    \u  Unicode
                                     0061      每個4bits   16bits=2byte

                                  \u0061=a 換算十進位=97 A=65