我們需要開始學(xué)習(xí)控制語句,控制語句分為兩類:選擇和循環(huán)。
“選擇結(jié)構(gòu)”代表“如果…,則…”的邏輯立倍。
比如醉冤,如果女朋友來電,則迅速接電話梗顺;如果看到紅燈宵荒,則停車采郎;
“循環(huán)結(jié)構(gòu)”代表“如果…,則再繼續(xù)…”的邏輯懂昂。
比如介时,如果沒打通女朋友電話,則再繼續(xù)打一次凌彬;如果沒找到喜歡的人沸柔,則再繼續(xù)找。
很神奇的是铲敛,“選擇和循環(huán)”就能表示所有的事情褐澎!
不信,你可以試試拆分你遇到的各種事情伐蒋。
實際上乱凿,任何軟件和程序,小到一個練習(xí)咽弦,大到一個操作系統(tǒng),
本質(zhì)上都是由“變量胁出、選擇語句型型、循環(huán)語句”組成。
這兩種基本邏輯結(jié)構(gòu)是相互支撐的全蝶,它們共同構(gòu)成了算法的基本結(jié)構(gòu)闹蒜,無論怎樣復(fù)雜的邏輯結(jié)構(gòu),都可以通過它們來表達抑淫。上述兩種結(jié)構(gòu)組成的程序可以解決全部的問題,所以任何一種高級語言都具備上述三種結(jié)構(gòu)绷落。
因此,本章是大家真正跨入編程界的“門檻”始苇,是成為“程序猿”的“門票”砌烁。
選擇結(jié)構(gòu)
if單選擇結(jié)構(gòu)
語法結(jié)構(gòu):
if(布爾表達式){
語句
}
if語句對條件表達式進行一次測試,若測試為真催式,則執(zhí)行{}中的語句函喉,否則跳過該語句。
圖1 if結(jié)構(gòu)流程圖
【示例1】if選擇結(jié)構(gòu)
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 + "分");
示例1運行效果圖
Math類的使用
java.lang包中的Math類提供了一些用于數(shù)學(xué)計算的方法荣月。
Math.random()該方法用于產(chǎn)生一個0到1這間的double類型的隨機數(shù)管呵。
int i = ? (int) (6 * Math.random()); ? //產(chǎn)生:[0,5]之間的隨機整數(shù)
新手雷區(qū):
如果if語句不寫{},則只能作用于后面的第一個語句哺窄。強烈建議捐下,任何時候都跟上{}账锹,即使里面只有一句話!
if-else雙選擇結(jié)構(gòu)
語法結(jié)構(gòu):
if(布爾表達式){
語句1
}else{
語句2
}
當(dāng)條件表達式為真時坷襟,執(zhí)行語句塊1奸柬,否則,執(zhí)行語句塊2啤握。也就是else部分鸟缕。
圖2 if-else結(jié)構(gòu)流程圖
【示例2】if-else結(jié)構(gòu)
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("周長大于面積");
}
示例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多選擇結(jié)構(gòu)
語法結(jié)構(gòu):
if(布爾表達式1) {
語句塊1;
} else if(布爾表達式2) {
語句塊2;
}………
else if(布爾表達式n){
語句塊n;
} else {
語句塊n+1;
}
圖3 if-else?if-else多選擇流程圖
【示例5】if-else if-else多選擇結(jié)構(gòu)
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("青年,要學(xué)習(xí)!");
} 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("老壽星,古來辖旄椤缘薛!");
}
}
};
示例3-5運行效果圖
示例3-5運行效果圖
switch多選擇結(jié)構(gòu)
語法結(jié)構(gòu):
switch (表達式) {
case值1:
語句序列;
[break];
case值2:
語句序列;
[break];
… … …????? … …
[default:
默認(rèn)語句;]
}
圖4switch多選擇流程圖
根據(jù)表達式值的不同執(zhí)行許多不同的操作。switch語句中case標(biāo)簽在JDK1.5之前必須是整數(shù)或者枚舉卡睦,不能是字符串宴胧,在JDK1.7之后允許使用字符串(String)。
switch語句會根據(jù)表達式的值從相匹配的case標(biāo)簽處開始執(zhí)行表锻,一直執(zhí)行到break語句處或者是switch語句的末尾恕齐。與任一case值不匹配,則進入default語句(如果存在default語句的情況)瞬逊。
【示例6】switch結(jié)構(gòu)
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("輔音");
}
}
}
示例6運行效果圖
示例6運行效果圖
「全棧Java筆記」是一部能幫大家從零到一成長為全棧Java工程師系列筆記显歧。筆者江湖人稱 Mr. G,10年Java研發(fā)經(jīng)驗确镊,曾在神州數(shù)碼士骤、航天院某所研發(fā)中心從事軟件設(shè)計及研發(fā)工作,從小白逐漸做到工程師蕾域、高級工程師拷肌、架構(gòu)師。精通Java平臺軟件開發(fā)旨巷,精通JAVAEE廓块,熟悉各種流行開發(fā)框架。
筆記包含從淺入深的六大部分:
A-Java入門階段
B-數(shù)據(jù)庫從入門到精通
C-手刃移動前端和Web前端
D-J2EE從了解到實戰(zhàn)
E-Java高級框架精解
F-Linux和Hadoop
F-Linux和Hadoop