昨天的問題
Q: 使用terminal
時,要怎麼進入某個資料夾?
A:cd 資料夾名稱
。
Q:使用terminal
時,要怎麼返回上一層資料夾?
A:cd ..
。
Q:Java的基本型別有哪幾種分類?分別是什麼?
A:4種
、byte、short、int、long、float、double、char、boolean
。
Q:Java中,是誰負責幫我們編譯.java
的檔案?要怎麼使用terminal
編譯.java
的檔案?
A:javac
、在terminal輸入javac 檔案名.java
。
Q:Java中,是誰負責幫我們將.class
的檔案編譯成機器碼
,要怎麼使用terminal
運行.class
的檔案?
A:JVM
、在terminal輸入java 檔案名
。
Q:Java中要怎麼宣告變數?
A:宣告未賦值:int num;
。宣告並賦值:int num = 10;
。
Q:什麼是提昇
?要怎麼強制型別轉換?
A:不同型別運算時,會以範圍大的作為提昇的基準。
byte b1 = 10;
short s1 = 15;
byte b2 = (byte)s1;
Q:int num = 10 % 3;
,這個num
是多少?%
代表什麼樣的運算?
A:1
,取餘數。
Q:a++
和++a
在Java中有什麼不同?
A:a++
如果賦值給某個變數時,是先賦值再運算。++a
如果賦值給某個變數時,是先運算再賦值。
if/else
:如果條件為true
,則運行if
內的程式碼,條件為flase
,則運行else
內的程式碼。程式碼格式:
if(條件判斷為true) {
執行這邊的事情
} else {
執行這邊的事情
};
生活中的舉例:
如果(if
)今天下雨就吃泡麵,不然吃牛排。
結果:
今日天氣:大雨大雨轟隆隆,吃泡麵。
程式碼範例:
int num = 10;
// if 內為true
if(num > 5) {
System.out.println("helloooo");
} else {
System.out.println("Nooooooo");
};
// helloooo
// if 內為false
if(num > 20) {
System.out.println("helloooo");
} else {
System.out.println("Noooooooo");
};
// Noooooooo
搭配昨天提到的&&
(左右兩邊的需要皆為true
才會是true
)使用,且若&&
左邊為false
時,就不會執行右邊的條件判斷,而是直接返回flase
。
int num = 5;
int num1 = 10;
// if 內為 true
if(num > 3 && num1 > 4) {
System.out.println("helloooo");
} else {
System.out.println("Noooooooo");
};
// helloooo
// 我是分隔線------------------------------------------
// if 內為 false
if(num > 10 & num1++ > 10) {
System.out.println(num1);
System.out.println("這邊是true啦");
} else {
System.out.println(num1);
System.out.println("這邊是false啦");
}
// 因為 num > 10 是 false,所以會執行 else 內的程式碼,但由於使用的是 &&,所以右邊的num1++不會執行,而是直接執行 else 內的程式碼
// 11
// 這邊是false啦
搭配昨天提到的&
(左右兩邊的需要皆為true
才會是true
)使用,若&
左邊為false
時,還是會執行右邊的條件判斷,並返回flase
。
int num = -5;
int num1 = 5;
// if 內為 false
if(num > 0 & num1++ > 1) {
System.out.println(num1);
System.out.println("這邊是true啦");
} else {
System.out.println(num1);
System.out.println("這邊是false啦");
}
// 因為 num > 0 是 false, 所以會執行 else 內的程式碼,但由於使用的是 &,所以右邊的num1++依然會執行
// 6
// 這邊是false啦
if/else if/else
:在if
結束後,else
前寫else if()
可以達成多個條件的判斷,要注意的是進行的判斷要放對位置,不然可能會因為條件判斷導致輸出的結果不是正確的。程式碼格式:
if(第一個判斷為true) {
執行這邊的事情
} else if(第二個判斷為true) {
執行這邊的事情
} else {
執行這邊的事情
};
生活舉例:
如果(if
)今天是星期一就吃牛排,如果(else if
)今天是星期二就吃陽春麵,不然就吃便當。
結果:
今天星期一:吃牛排。(單純現在有點想吃牛排XD)
int num = 10;
if(num > 20) {
System.out.println("num > 20");
} else if (num > 5) {
System.out.println("num > 5");
} else {
System.out.println("else");
};
// num > 5
現在有一個分數要進行判斷,高於90分是好棒棒,高於80分是好棒,高於70分是不錯,其餘是請加油。
int score = 94;
if(score > 70) {
System.out.println("不錯");
} else if (score > 80) {
System.out.println("好棒");
} else if (score > 90) {
System.out.println("好棒棒");
} else {
System.out.println("請加油");
}
// 不錯
// 前面提到的,要注意在寫判斷時,要注意順序的擺放,依照這樣的寫法時,這樣寫的話只要分數大於70,永遠都只會輸出不錯,不會進到第二、第三個判斷內。
// 我是分隔線-------------------------------------------
if(score > 90) {
System.out.println("好棒棒");
} else if (score > 80) {
System.out.println("好棒");
} else if (score > 70) {
System.out.println("不錯");
} else {
System.out.println("請加油");
}
// 好棒棒
// 這樣子寫才會依照我們的需求,正確的判斷相應分數輸出的內容
switch case
:透過不同的案例分別對應要執行的程式碼,閱讀起來比if/else if
還清楚,每一個case
執行完成後需要加入break;
,不然他會接著執行下面的部分,可以設定default
,若沒有對應的case
時,會執行default
的程式碼。// 假設要判斷分數的平均(不計算小數)
int score= 78;
int average = score / 10;
switch(average) {
case 0:
System.out.println("平均0分");
break;
case 1:
System.out.println("平均1分");
break;
case 2:
System.out.println("平均2分");
break;
case 3:
System.out.println("平均3分");
break;
case 4:
System.out.println("平均4分");
break;
case 5:
System.out.println("平均5分");
break;
case 6:
System.out.println("平均6分");
break;
case 7:
System.out.println("平均7分");
break;
case 8:
System.out.println("平均8分");
break;
case 9:
System.out.println("平均9分");
break;
case 10:
System.out.println("平均滿分");
break;
default:
System.out.println("有誤");
break;
};
// 平均7分
// 判斷是否及格(60分為及格)
switch(score / 10) {
case 0:
case 1:
case 2:
case 3:
case 4:
case 5:
System.out.println("不及格");
break;
case 6:
case 7:
case 8:
case 9:
case 10:
System.out.println("及格");
break;
default:
System.out.println("有誤");
break;
}
};
// 及格
/*
也可以用這樣的方式將相同狀況的合併在一起寫,假設case為0時,因為沒有內容,所以會繼續執行
往下執行直到case5所設定的程式碼
*/
if/else``if/else if
不一定要在最後加入else
,這代表只有當條件有成立才會執行scope
內的程式碼。switch
也可以不在最後加入default
的預設。
if/else
和if/else if
有甚麼差別?switch
應該如何使用?