3.1-全棧Java筆記:Java控制語句 (上)選擇結構篇

weixin_33751566發表於2017-06-28

我們需要開始學習控制語句,控制語句分為兩類:選擇和迴圈。

“選擇結構”代表“如果…,則…”的邏輯。

比如,如果女朋友來電,則迅速接電話;如果看到紅燈,則停車;

“迴圈結構”代表“如果…,則再繼續…”的邏輯。

比如,如果沒打通女朋友電話,則再繼續打一次;如果沒找到喜歡的人,則再繼續找。

很神奇的是,“選擇和迴圈”就能表示所有的事情!

不信,你可以試試拆分你遇到的各種事情。

實際上,任何軟體和程式,小到一個練習,大到一個作業系統,

本質上都是由“變數、選擇語句、迴圈語句”組成。

這兩種基本邏輯結構是相互支撐的,它們共同構成了演算法的基本結構,無論怎樣複雜的邏輯結構,都可以通過它們來表達。上述兩種結構組成的程式可以解決全部的問題,所以任何一種高階語言都具備上述三種結構。

因此,本章是大家真正跨入程式設計界的“門檻”,是成為“程式猿”的“門票”。

選擇結構

if單選擇結構

語法結構:

if(布林表示式){

語句

}

if語句對條件表示式進行一次測試,若測試為真,則執行{}中的語句,否則跳過該語句。

6649960-04a146ce96e04bc3

圖1 if結構流程圖

【示例1if選擇結構

doublei = 6 * Math.random();

doublej = 6 * Math.random();

doublek = 6 * Math.random();

intcount = (int) (i + j + k);

if(count > 15) {

System.out.println("今天手氣不錯");

}

if(count >= 10 && count <= 15) {   //錯誤寫法:10

System.out.println("今天手氣很一般");

}

if(count < 10) {

System.out.println("今天手氣不怎麼樣");

}

System.out.println("得了" + count + "分");

6649960-be6668734761da85

示例1執行效果圖

Math類的使用

java.lang包中的Math類提供了一些用於數學計算的方法。

Math.random()該方法用於產生一個0到1這間的double型別的隨機數。

int i =   (int) (6 * Math.random());   //產生:[0,5]之間的隨機整數

新手雷區:

如果if語句不寫{},則只能作用於後面的第一個語句。強烈建議,任何時候都跟上{},即使裡面只有一句話!

if-else雙選擇結構

語法結構:

if(布林表示式){

語句1

}else{

語句2

}

當條件表示式為真時,執行語句塊1,否則,執行語句塊2。也就是else部分。

6649960-57d352858219876e

圖2 if-else結構流程圖

【示例2if-else結構

double r = 4 * Math.random();

double area = Math.PI* Math.pow(r, 2);

double circle = 2 * Math.PI* r;

System.out.println("半徑為:" + r);

System.out.println("面積為:" + area);

System.out.println("周長為:" + circle);

if(area >= circle) {

System.out.println("面積大於等於周長");

} else {

System.out.println("周長大於面積");

}

6649960-c4f793167caab2c4

示例2執行效果圖

條件運算子有時候可用於代替if/else,如示例3與示例4所示。

【示例3】使用if-else

inta=2;

intb=3;

System.out.println((a

【示例4】使用條件運算子

inta=2;

intb=3;

if(a

System.out.println(a);

}else{

System.out.println(b);

}

if-else if-else多選擇結構

語法結構:

if(布林表示式1) {

語句塊1;

} else if(布林表示式2) {

語句塊2;

}………

else if(布林表示式n){

語句塊n;

} else {

語句塊n+1;

}

6649960-ccd4ff04f3839ad6

圖3 if-else if-else多選擇流程圖

【示例5if-else if-else多選擇結構

public class  Welcome{

public static void main(String[] args) {

int age = (int) (100 * Math.random());

System.out.print("年齡是" + age + ",屬於");

if (age < 15) {

System.out.println("兒童,喜歡玩!");

} else if (age < 25) {

System.out.println("青年,要學習!");

} else if (age < 45) {

System.out.println("中年,要工作!");

} else if (age < 65) {

System.out.println("中老年,要補鈣!");

} else if (age < 85) {

System.out.println("老年,多運動!");

} else {

System.out.println("老壽星,古來稀!");

}

}

};

6649960-512a369c9961685a.gif

6649960-edb7dde6c71a22c5.gif

示例3-5執行效果圖

示例3-5執行效果圖

switch多選擇結構

語法結構:

switch (表示式) {

case值1:

語句序列;

[break];

case值2:

語句序列;

[break];

… … …      … …

[default:

預設語句;]

}

6649960-6f284d1ad085bc00

圖4switch多選擇流程圖

根據表示式值的不同執行許多不同的操作。switch語句中case標籤在JDK1.5之前必須是整數或者列舉,不能是字串,在JDK1.7之後允許使用字串(String)。

switch語句會根據表示式的值從相匹配的case標籤處開始執行,一直執行到break語句處或者是switch語句的末尾。與任一case值不匹配,則進入default語句(如果存在default語句的情況)。

【示例6switch結構

public class VowelsAndConsonants {

public static void main(String[] args) {

char  c = 'a';

int rand =(int) (26*Math.random());

char c2 = (char)(c+rand);

System.out.print(c2 + ": ");

switch (c2) {

case 'a':

case 'e':

case 'i':

case 'o':

case 'u':

System.out.println("母音");   break;

case 'y':

case 'w':

System.out.println("半母音");    break;

default:

System.out.println("子音");

}

}

}

6649960-1e4ff9df3c6ce32f
6649960-2235abb73642de01

示例6執行效果圖

示例6執行效果圖

「全棧Java筆記」是一部能幫大家從零到一成長為全棧Java工程師系列筆記。筆者江湖人稱 Mr. G,10年Java研發經驗,曾在神州數碼、航天院某所研發中心從事軟體設計及研發工作,從小白逐漸做到工程師、高階工程師、架構師。精通Java平臺軟體開發,精通JAVAEE,熟悉各種流行開發框架。

筆記包含從淺入深的六大部分:

A-Java入門階段

B-資料庫從入門到精通

C-手刃移動前端和Web前端

D-J2EE從瞭解到實戰

E-Java高階框架精解

F-Linux和Hadoop

F-Linux和Hadoop

相關文章