2010-04-23_Java_SL100-4
Notes:
Lab: And 運算 與 Or 運算
建立一個程式碼如下
public class And_Or {
public static void main(String[] args) {
boolean b;
int x = 3;
int y = 3;
b = ( x == y && y++ >= 3);//因為 x 等於 y , 所以 會執行 y++
System.out.println("b = "+b);
System.out.println("x = "+x);
System.out.println("y = "+y); // TODO code application logic here
}
}
輸出結果
b = true
x = 3
y = 4
-----------------------------------------------------------------------------------------------------------------------
但是如果更改程式碼為
public class And_Or {
public static void main(String[] args) {
boolean b;
int x = 3;
int y = 3;
b = ( x != y && y++ >= 3);//因為x 不等於 != y 為假, 所以就不會執行後面的 y++
System.out.println("b = "+b);
System.out.println("x = "+x);
System.out.println("y = "+y); // TODO code application logic here
}
}
輸出結果為
b = false
x = 3
y = 3
-----------------------------------------------------------------------------------------------------------------------
修改剛剛的程式碼為
public class And_Or {
public static void main(String[] args) {
boolean b;
int x = 3;
int y = 3;
b = ( x != y || y++ >= 3);//因為x 不等於 != y 為假, 所以就會執行後面的 y++
System.out.println("b = "+b);
System.out.println("x = "+x);
System.out.println("y = "+y); // TODO code application logic here
}
}
輸出結果為
b = true
x = 3
y = 4
-----------------------------------------------------------------------------------------------------------------------
修改程式內容為
public class And_Or {
public static void main(String[] args) {
boolean b;
int x = 3;
int y = 3;
b = ( x == y || y++ >= 3);//因為x 等於 == y 為真, 所以就不會執行後面的 y++
System.out.println("b = "+b);
System.out.println("x = "+x);
System.out.println("y = "+y); // TODO code application logic here
}
}
輸出結果為
b = true
x = 3
y = 3
Lab: 位元運算
建立一個程式
public class Class0423 {
public static void main(String[] args) {
int x = 12;//2進位為 1100
int y =7; // 2進位為 0111
int z;
z = x & y;// z 為 x 與 y 進行2 進位的 And 運算, 為 0100
System.out.println("z = "+z);
}
}
輸出結果為
z = 4
-----------------------------------------------------------------------------------------------------------------------
修改程式碼 練習 XOR 互斥
public class Class0423 {
public static void main(String[] args) {
int x = 12;//2進位為 1100
int y =7; //2進位為 0111
int z;
z = x ^ y;// z 為 x 與 y 進行2 進位的 XOR 運算, 為 1011 互斥為1
System.out.println("z = "+z);
}
}
輸出結果為
z = 11
**位移運算位元**
Lab:
public class Class042302 {
public static void main(String[] args) {
int x = 12;//2進位為0000001100
int y;
y = x>>1;//12 往右移動 1位元 就等於 12/2
System.out.println("y = "+y);
y = x>>2;//12 往右移動 2位元 就等於 12/4 2的2次方
System.out.println("y = "+y);
y = x>>3;//12 往右移動 3位元 就等於 12/8 2的3次方
System.out.println("y = "+y);
// TODO code application logic here
}
}
輸出結果為
y = 6
y = 3
y = 1
-----------------------------------------------------------------------------------------------------------------------
Notes:
- x += y; --> x=x+y;
- x -= y; --> x=x-y;
- x *= y; --> x=x*y;
- x /=y; --> x=x/y;
- x %=y; --> x=x%y;
Lab: Scanner
建立一段程式碼
import java.lang.*;
import java.util.*;
public class MyInput {
public static void main(String[] args) {
Scanner sc;
sc = new Scanner(System.in);//產生一個新物件, 掃描鍵盤輸入
String str;
System.out.println("Input String Data: ");
str = sc.next();//sc.next()搜尋並傳回來自此掃瞄器的下一個完整旗標。目標為字串
System.out.println("Hello "+str);
}
}
輸出結果為
Input String Data:
0 <------- 此為使用者的輸入值
Hello 0
Lab: 輸入字串
將程式碼改為
import java.lang.*;
import java.util.*;
public class MyInput {
public static void main(String[] args) {
Scanner sc;
sc = new Scanner(System.in);//產生一個新物件, 掃描鍵盤輸入
//String str;
int istr;
System.out.println("Input int Data: ");
istr = sc.nextInt();//sc.nextInt()將輸入資訊的下一個旗標掃瞄為一個 int。目標為int
System.out.println("Hello "+istr);
}
}
輸出結果為
Input int Data:
3 <---此為使用者輸入資料
Hello 3
但是萬一使用者輸入非 int 型態的資料, 就會產生
Input int Data:
h <----此為使用者輸入資料
Exception in thread "main" java.util.InputMismatchException
at java.util.Scanner.throwFor(Scanner.java:857)
at java.util.Scanner.next(Scanner.java:1478)
at java.util.Scanner.nextInt(Scanner.java:2108)
at java.util.Scanner.nextInt(Scanner.java:2067)
at MyInput.main(MyInput.java:12)
Java Result: 1
Lab: ? :
建立一個程式碼
import java.lang.*;
import java.util.*;
public class MyOp {
public static void main(String[] args) {
int x = 3;
int y = 2;
String str;
str = (x>y)?"x>y":"x<y";//如果為真執行?號後面的x>y, 如果為假就執行:號 x<y
System.out.println("str = "+str);
}
}
輸出結果為
str = x<y
Lab: 寫一個程式判斷奇數還是偶數
建立程式碼
import java.lang.*;
import java.util.*;
public class InputNumber {
public static void main(String[] args) {
Scanner sc =new Scanner(System.in);
System.out.println("請輸入整數");
int i = sc.nextInt();
int x = i%2; // x等於輸入的整數 除以2 的餘數
String str = (x == 0)?"偶數":"奇數"; // 餘數為0 就是偶數
System.out.println(str);
}
}