從零學java筆錄-第12篇 程式流程控制(二)

weixin_34321977發表於2016-10-19

本文是《凱哥陪你學系列之java基礎篇》。歡迎關注本賬號,持續更新中~

本講主要內容:

1:上篇if語句的兩個練習題

2:選擇語句(上)

上篇if語句的兩個練習題

練習1

根據使用者輸入的數值,輸出對應的星期。

分析:

需求:

根據使用者輸入的數值,輸出對應的星期。

if語句練習:

需求:

根據使用者輸入的數值,輸出對應的星期。

分析:

1:怎麼接收使用者的值?

根據使用者輸入的數值,使用者輸入的資料不確定。

所以使用變數來接收使用者輸入的值。

(忽略使用者怎麼輸入,我們這麼接收這點。java程式碼接收使用者輸入,在以後會講解)

2:需要注意的是星期一至星期日範圍

2.1:週一至週日共有七天

3:因為資料不確定,所以要對資料進行判斷

又因為,星期一和星期二在一天中,只能是其中一個。

所以使用到if else 語句

程式碼:

/**

if語句練習:

需求:

根據使用者輸入的數值,輸出對應的星期。

分析:

1:怎麼接收使用者的值?

根據使用者輸入的數值,使用者輸入的資料不確定。

所以使用變數來接收使用者輸入的值。

(忽略使用者怎麼輸入,我們這麼接收這點。java程式碼接收使用者輸入,在以後會講解)

2:需要注意的是星期一至星期日範圍

2.1:週一至週日共有七天

3:因為資料不確定,所以要對資料進行判斷

又因為,星期一和星期二在一天中,只能是其中一個。

所以使用到if else 語句

**/

class IfTest{

public static void main(String[] args){

int week = 3; //week是用來接收使用者輸入的變數。 3假設是使用者輸入的數值

if(week ==1){

System.out.println("你輸入的是星期一");

}else if(week ==2){

System.out.println("你輸入的是星期二");

}else if(week ==3){

System.out.println("你輸入的是星期三");

}else if(week ==4){

System.out.println("你輸入的是星期四");

}else if(week ==5){

System.out.println("你輸入的是星期五");

}else if(week ==6){

System.out.println("你輸入的是星期六");

}else if(week ==7){

System.out.println("你輸入的是星期日");

}else{

System.out.println("你輸入的有誤,請輸入1~7之間的正整數");

}

System.out.println("GAME OVER");

}

}

練習2:

需求:

根據使用者輸入的數值,輸出對應的月中上中下旬值。

分析

分析:

1:一個月只能是 上、中、下詢。三種情況。三種情況同時只能出現一種。

所以需要使用 if else語句。

2:有因為一個月有30(31)天。所以

上旬:1--10號

中旬:11--20號

下旬:21--30(28,29,31)

3:寫if判斷的時候,難道需要寫30(28,29,31)個嗎?

如:

if(day ==1){

System.out.println("你輸入的是上旬");

}else if(day ==2){

System.out.println("你輸入的是上旬");

}else if(day ==3){

System.out.println("你輸入的是上旬");

}

一直到

else if(day ==110){

System.out.println("你輸入的是上旬");

}

進過分析,我們發現 1--10號輸出的都一樣。

所以這個時候我們可以將條件合併,配合之前學過的邏輯運算使用

程式碼:

class IfTest2{

public static void main(String[] args){

int day = 1;//day是用來接收使用者輸入的變數。 3假設是使用者輸入的數值

if( day >= 1 && day <11){

System.out.println("你輸入的是上旬");

}else if(day >= 11 &&day <21){

System.out.println("你輸入的是中旬");

}else if(day >= 21 &&day <31){

System.out.println("你輸入的是下旬");

}else{

System.out.println("你輸入的有誤,請輸入1~31之間的正整數");

}

System.out.println("GAME OVER");

}

}

執行結果:

1875993-845cbf0856cf2290

這種條件合併思想也叫做程式碼複用。

程式碼複用方式很多,這只是其中的一種。

優化作業::

為了提高效率,進行如下優化。

思路:

我們知道,一個月最多31天。所以在判斷最外面新增一個判斷條件為:

if(day<1 || day>31)直接輸出:您輸入的有誤。否則在進行上中下旬的判斷。

程式碼,自己完成。

選擇結構 (上)

判斷語句與選擇語句的區別:

簡單理解:判斷語句結果只有一種,true或是false

而選擇語句,會給出很多備選答案的。

switch語句:

語法:

switch(表示式){

case 取值1:

執行語句1;

break;

case 取值2:

執行語句2;

break;

case 取值3:

執行語句3;

break;

…..

default:

執行語句;

break;

}

相關單詞:

switch:轉換、開關、交換等

case: 時間、情況等。

口語中,XX事情對我來是小case。就是這個case的

break:間斷、中斷等

default:預設

程式碼演示

class SwitchDemo{

public static void main(String[] args){

//需求 :根據使用者輸入的數值 返回對應星期

int day = 4;

switch(day){

case 1:

System.out.println("你輸入的是星期一");

break;

case 2 :

System.out.println("你輸入的是星期二");

break;

case 3 :

System.out.println("你輸入的是星期三");

break;

case 4 :

System.out.println("你輸入的是星期四");

break;

case 5 :

System.out.println("你輸入的是星期五");

break;

case 6 :

System.out.println("你輸入的是星期六");

break;

case 7 :

System.out.println("你輸入的是星期日");

break;

default:

System.out.println("哥們,你是外星人吧?!地球上沒有這個日期");

break;

}

}

}

輸出結果

1875993-eb11978e5423e304

當是非1-7的時候:day = 12的時候:

1875993-0ab08f4a6cdc7c9c

需要注意的是:

swithc(表示式)中表示式的型別都有那些?

在 jdk 1.5之前,只支援以下基本型別

byte、shot、char、int.其他型別不支援了。

在jdk 1.5又新增了一種列舉的型別(以後會學到)

在jdk 1.7加入了新的支援,支援String型別了。

ps:歡迎關注凱哥微信公眾號:凱哥Java

本系列文章:

從零學java筆錄-第0篇

從零學java筆錄-第1篇 環境搭建

從零學java筆錄-第2篇 驗證jdk是否安裝成功

從零學java筆錄-第3篇 Hello work

從零學java筆錄-第4篇 Hello word 細節說明

從零學java筆錄-第5篇 java語言基礎組成

從零學java筆錄-第6篇 進位制之間轉換

從零學java筆錄-第7篇 資料型別(一)

從零學java筆錄-第8篇 資料型別(二)

從零學java筆錄-第9篇 資料型別(三)

從零學java筆錄-第10篇 資料型別(四)

從零學java筆錄-第11篇 程式流程控制(一)

相關文章