iT邦幫忙

2024 iThome 鐵人賽

DAY 7
0
自我挑戰組

前端工程師的java學習紀錄系列 第 7

Day7-if/else、switch

  • 分享至 

  • xImage
  •  

昨天的問題

  1. Q: 使用terminal時,要怎麼進入某個資料夾?
    A:cd 資料夾名稱

  2. Q:使用terminal時,要怎麼返回上一層資料夾?
    A:cd ..

  3. Q:Java的基本型別有哪幾種分類?分別是什麼?
    A:4種byte、short、int、long、float、double、char、boolean

  4. Q:Java中,是誰負責幫我們編譯.java的檔案?要怎麼使用terminal編譯.java的檔案?
    A:javac、在terminal輸入javac 檔案名.java

  5. Q:Java中,是誰負責幫我們將.class的檔案編譯成機器碼,要怎麼使用terminal運行.class的檔案?
    A:JVM、在terminal輸入java 檔案名

  6. Q:Java中要怎麼宣告變數?
    A:宣告未賦值:int num;。宣告並賦值:int num = 10;

  7. Q:什麼是提昇?要怎麼強制型別轉換?
    A:不同型別運算時,會以範圍大的作為提昇的基準。

byte b1 = 10;
short s1 = 15;
byte b2 = (byte)s1;
  1. Q:int num = 10 % 3;,這個num是多少?%代表什麼樣的運算?
    A:1,取餘數。

  2. Q:a++++a在Java中有什麼不同?
    A:a++如果賦值給某個變數時,是先賦值再運算。++a如果賦值給某個變數時,是先運算再賦值。


Java中的條件判斷也跟其他程式語言大同小異

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的預設。


  1. if/elseif/else if有甚麼差別?
  2. switch 應該如何使用?

上一篇
Day6-運算子(Operator)
下一篇
Day8-圈圈圓圓圈圈(循環啦)
系列文
前端工程師的java學習紀錄38
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言