JavaSE程序邏輯控制完整實(shí)例代碼
學(xué)習(xí)目標(biāo)
1.Java中程序的邏輯控制語句
2.Java的輸入輸出方式
3.獨(dú)立完成綜合案例的開發(fā)
摘要
本文系統(tǒng)講解了Java程序設(shè)計的三大基本結(jié)構(gòu):
1. 順序結(jié)構(gòu):代碼按書寫順序逐行執(zhí)行,如流水賬般自上而下。
2. 選擇結(jié)構(gòu):
if-else: 實(shí)現(xiàn)"條件判斷",根據(jù)不同布爾表達(dá)式執(zhí)行不同邏輯。語法為 if(條件){…}else if(條件){…}else{…} ,適用于范圍判斷(如成績評級、閏年判
定)。
switch: 實(shí)現(xiàn)"查表跳轉(zhuǎn)",直接匹配選項(xiàng)執(zhí)行對應(yīng)代碼塊。語法為 switch(表達(dá)式){case 值: … break; default: …} ,適用于等值判斷(如星期、季節(jié)),需注意 break 防止case穿透。
3. 循環(huán)結(jié)構(gòu):
- for: 適用于明確知道循環(huán)次數(shù)的場景,語法為 for(起點(diǎn);終點(diǎn);步進(jìn)){…} ,如做100個俯臥撐。
- while: 適用于不確定循環(huán)次數(shù)的場景,語法為 while(條件){…} ,如吃到飽為止。
- 核心要點(diǎn): 程序邏輯控制就是順序?yàn)槟J(rèn),選擇靠if/switch,重復(fù)用for/while。通過三大結(jié)構(gòu)的組合,可解決如"找出水仙花數(shù)"等實(shí)際問題。
首先我們先來初步認(rèn)識一下什么是程序邏輯控制?
程序邏輯控制就是讓代碼按預(yù)期方式運(yùn)行的核心 可以分為三大基本結(jié)構(gòu) 分別為順序結(jié)構(gòu)、選擇結(jié)構(gòu)、循環(huán)結(jié)構(gòu) 。
1.順序結(jié)構(gòu)
見名知意 就是按照代碼書寫的順序進(jìn)行執(zhí)行
System.out.println("aaa");
System.out.println("bbb");
System.out.println("ccc");
//
運(yùn)?結(jié)果如下
aaa
bbb
ccc
如果調(diào)整了代碼的書寫順序那么執(zhí)行順序也會隨著發(fā)生改變
System.out.println("aaa");
System.out.println("ccc");
System.out.println("bbb");
//
運(yùn)?結(jié)果如下
aaa
ccc
bbb
順序結(jié)構(gòu)相對較于簡單 我們就不做過多贅述 僅需記住代碼的執(zhí)行順序跟我們代碼的書寫順序是相對應(yīng)的即可
2.分支結(jié)構(gòu)
介紹:分支結(jié)構(gòu)可以理解為程序里的“選擇題” 讓代碼根據(jù)不同情況執(zhí)行不同的邏輯
2.1 if-else
我們可以想象如下的一個場景
你走到一個岔路口,如果你的肚子餓了,那么你就會去找一家飯店吃飯,否則如果是累了的話,你就會選擇回家睡覺,否則就會繼續(xù)散步逛街等…
程序也是如此 if-else就可以使得代碼在不同情況下執(zhí)行不同邏輯
if-else的語法格式
if(布爾表達(dá)式1){
//如果滿足布爾表達(dá)式1 執(zhí)行此代碼塊內(nèi)的邏輯
}else if(布爾表達(dá)式2){
//如果滿足布爾表達(dá)式2 則執(zhí)行此代碼塊內(nèi)的邏輯
}else{
//如果上述布爾表達(dá)式都不滿足的話 則執(zhí)行此代碼塊中的邏輯
}
注意 else if 以及 else 并非必需品 具體需結(jié)合代碼需求進(jìn)行分析
在了解完 if-else的基本語法格式以后 讓我們來結(jié)合生活中的具體案例 強(qiáng)化一下記憶吧!
比如:小明這次的考試成績 如果考到了90分以上 則獎勵一頓麥當(dāng)勞,如果考試成績在80~90分之間 則獎勵一個雞腿 如果在80分以下的話小明就會挨上一個大嘴巴子了…
int score = 79;
if(score > 90){
System.out.println("獎勵一頓麥當(dāng)勞?。?!");
}else if(score<=90&&score>=80){
System.out.println("獎勵一個大雞腿!")
}else{
System.out.println("挨?嘴巴?!!!")
}
//由小明的考試成績(score)可知 可憐的小明不僅沒有吃上麥當(dāng)勞 同時也錯過了大雞腿 最后只吃上了大嘴巴子.....
綜合代碼案例練習(xí)
判斷一個年份是否為閏年?
在做題前 我們需要先來了解一下關(guān)于閏年的判定規(guī)則 閏年的判定規(guī)則很簡單 就一句話:
能被4整除,且不能被100整除 或者 能被400整除
int year = 2000;
if ((year % 4 == 0&&year % 100 != 0)||year % 400 == 0) {
System.out.println("是閏年");
} else {
System.out.println("不是閏年");
}
2.2 switch語句
在學(xué)習(xí)完if-else語句以后 相信你對"選擇"已經(jīng)有了一個初步的了解 下面讓我們來認(rèn)識一下 switch語句吧!
認(rèn)識switch之前讓我們先來認(rèn)識一下 break 顧名思義----打破
在循環(huán)語句中代表的意思也大相徑庭 打破循環(huán) 跳出循環(huán) 執(zhí)行后續(xù)代碼。
我們可以試想另一個場景 你來到了一家快餐店點(diǎn)餐
**if-else方式:**站在收銀臺前 一個個問:
“是漢堡嗎?不是?那…”
“是薯?xiàng)l嗎?不是?那…”
“是可樂嗎?不是?那…”
**switch方式:**直接看菜單,按數(shù)字點(diǎn)餐:
“我要3號套餐!” → 直接拿到3號 走出快餐店
switch就是程序里的"查表跳轉(zhuǎn)",直接匹配選項(xiàng),效率更高!
基本語法格式
switch(表達(dá)式) {
case 值1:
// 變量等于值1時執(zhí)行的代碼
break;
case 值2:
// 變量等于值2時執(zhí)行的代碼
break;
default:
// 都不匹配時執(zhí)行的代碼
break;
}
執(zhí)行流程
1 先計算表達(dá)式的值
2 匹配根據(jù)表達(dá)式的值 匹配對應(yīng)的case 并根據(jù)case執(zhí)行代碼塊
3 若執(zhí)行到了break則跳出循環(huán) 否則會導(dǎo)致case穿透的情況發(fā)生
4 若表達(dá)式的值都沒能與switch語句中的case值匹配上 則執(zhí)行最后的default代碼塊
結(jié)合生活案例分析代碼
小明想知道當(dāng)今天星期幾時 分別上什么課
int weekDay = 3; // 假設(shè)今天是星期三
switch(weekDay) {
case 1:
System.out.println("星期一:上語文和數(shù)學(xué)");
break;
case 2:
System.out.println("星期二:上英語和物理");
break;
case 3:
System.out.println("星期三:上化學(xué)和生物");
break;
case 4:
System.out.println("星期四:上歷史和地理");
break;
case 5:
System.out.println("星期五:上體育和美術(shù)");
break;
default:
System.out.println("周末啦,放假休息!");
break;
}
//代碼執(zhí)行結(jié)果如下
//星期三:上化學(xué)和生物
綜合代碼練習(xí)2 四季判斷
根據(jù)輸入的月份 判斷當(dāng)前是哪個季節(jié)
int month = 7;
switch(month) {
case 3:
case 4:
case 5:
System.out.println("春季:春暖花開");
break;
case 6:
case 7:
case 8:
System.out.println("夏季:夏日炎炎");
break;
case 9:
case 10:
case 11:
System.out.println("秋季:秋高氣爽");
break;
case 12:
case 1:
case 2:
System.out.println("冬季:白雪皚皚");
break;
default:
System.out.println("輸入的月份有誤!");
break;
}
// 輸出:夏季:夏日炎炎
2.3 循環(huán)結(jié)構(gòu):for 和 while
下面我們可以通過對比來認(rèn)識for循環(huán)和while循環(huán)
可以想象你要做10個俯臥撐,那么就會如下有兩種計數(shù)方式:
for循環(huán):心里默念"1,2,3…10",數(shù)到10自動停止
while循環(huán):做到?jīng)]力氣了就停,不確定要做多少個
基本語法格式
for循環(huán)(明確循環(huán)次數(shù)的循環(huán))
for(起點(diǎn); 終點(diǎn)條件; 每步動作) {
// 重復(fù)執(zhí)行的代碼
}
while循環(huán)(不確定次數(shù)的循環(huán))
while(條件成立) {
// 重復(fù)執(zhí)行的代碼
}
在初步了解完倆者的語法格式以后 讓我們結(jié)合生活案例來分析一下吧!
生活案例1:健身計劃 每天做100個俯臥撐
for(int i = 1; i <= 100; i++) {
System.out.println("第" + i + "個俯臥撐");
}
//當(dāng)我們做滿100個俯臥撐時就結(jié)束今天的鍛煉
生活案例2 吃包子 吃到撐為止
int 飽度 = 0;
while(飽度 < 10) { // 飽度小于10就繼續(xù)吃
System.out.println("再吃一個包子");
飽度++; // 每吃一個飽度+1
}
System.out.println("吃飽了!");
在了解完做俯臥撐和吃包子的案例以后 你可能已經(jīng)大概了解了for循環(huán)和while循環(huán)從代碼實(shí)現(xiàn)上有什么不同
那么你知道什么時候用for循環(huán) 什么時候用while循環(huán)嗎?
下面通過表格對比的方式給你解答這個問題
| 場景 | for循環(huán) | while循環(huán) |
|---|---|---|
| 明確知道循環(huán)次數(shù) | 首選 | 可以選 |
| 不確定循環(huán)次數(shù)(讀文件操作) | 不太適合 | 首選 |
| 一般計數(shù)任務(wù) | 更簡潔 | 代碼稍復(fù)雜 |
相信通過上述內(nèi)容以及代碼案例的介紹與分析 你已經(jīng)大概認(rèn)識程序邏輯控制中的三大基本結(jié)構(gòu) 什么是順序結(jié)構(gòu) 選擇結(jié)構(gòu) 循環(huán)結(jié)構(gòu) 這就是像是學(xué)會了武術(shù)的基本拳法 但真正的功夫在于多種拳法的組合
試著用我們剛學(xué)的三大結(jié)構(gòu)來解決下面這個經(jīng)典問題吧
求出0?999之間的所有“?仙花數(shù)”并輸出。
水仙花數(shù):是指?個三位數(shù),其各位數(shù)字的??
和確好等于該數(shù)本?,如:153=13+53+3^3 ,則153是?個“?仙花數(shù)”
public class NarcissusNumbers {
public static void main(String[] args) {
System.out.println("0~999之間的水仙花數(shù)有:");
// 循環(huán):從100到999(三位數(shù))
for (int num = 100; num <= 999; num++) {
// 提取各位數(shù)字
int ge = num % 10; // 個位:153 % 10 = 3
int shi = num / 10 % 10; // 十位:153 / 10 = 15,15 % 10 = 5
int bai = num / 100; // 百位:153 / 100 = 1
// 計算立方和
int sum = ge*ge*ge + shi*shi*shi + bai*bai*bai;
// 判斷:如果等于原數(shù),就是水仙花數(shù)
if (sum == num) {
System.out.println(num);
}
}
}
}
總結(jié)
- 順序結(jié)構(gòu):代碼從上到下,一句一句按順序執(zhí)行,像流水賬一樣。
- 選擇結(jié)構(gòu):程序遇到岔路口,根據(jù)不同條件走不同路,像做選擇題。
- 循環(huán)結(jié)構(gòu):重復(fù)做某件事,直到滿足條件為止,像跳繩數(shù)數(shù)。
核心記?。喉樞蚴悄J(rèn),選擇靠if,重復(fù)用循環(huán)!
到此這篇關(guān)于JavaSE程序邏輯控制的文章就介紹到這了,更多相關(guān)JavaSE程序邏輯控制內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Java中實(shí)現(xiàn)兩個線程交替運(yùn)行的方法
這篇文章主要介紹了Java中實(shí)現(xiàn)兩個線程交替運(yùn)行的方法,本文將給大家分享操作流程,通過實(shí)例代碼給大家介紹的非常詳細(xì),需要的朋友可以參考下2021-12-12
java實(shí)現(xiàn)學(xué)籍管理系統(tǒng)
這篇文章主要為大家詳細(xì)介紹了java實(shí)現(xiàn)學(xué)籍管理系統(tǒng),具有一定的參考價值,感興趣的小伙伴們可以參考一下2016-12-12
Intellij IDEA 查找接口實(shí)現(xiàn)類的快捷鍵
本文主要介紹了Intellij IDEA 查找接口實(shí)現(xiàn)類的快捷鍵,文中通過圖文示例介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2025-06-06
Java實(shí)現(xiàn)格式化打印慢SQL日志的方法詳解
不管我們使用何種語言開發(fā),一旦程序發(fā)生異常,日志是一個很重要的數(shù)據(jù),下面這篇文章主要給大家介紹了關(guān)于Java實(shí)現(xiàn)格式化打印慢SQL日志的相關(guān)資料,需要的朋友可以參考下2022-10-10
詳解基于MybatisPlus兩步實(shí)現(xiàn)多租戶方案
這篇文章主要介紹了詳解基于MybatisPlus兩步實(shí)現(xiàn)多租戶方案,本文分兩步,通過實(shí)例代碼給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下2021-04-04
eclipse+myeclipse 環(huán)境配置方法
eclipse+myeclipse配置環(huán)境2009-07-07
SpringSecurityOAuth2實(shí)現(xiàn)微信授權(quán)登錄
微信的登錄功能是用戶注冊和使用微信的必經(jīng)之路之一,而微信授權(quán)登錄更是方便了用戶的登錄操作,本文主要介紹了SpringSecurityOAuth2實(shí)現(xiàn)微信授權(quán)登錄,感興趣的可以了解一下2023-09-09
Java實(shí)現(xiàn)深度優(yōu)先搜索(DFS)和廣度優(yōu)先搜索(BFS)算法
深度優(yōu)先搜索(DFS)和廣度優(yōu)先搜索(BFS)是兩種基本的圖搜索算法,可用于圖的遍歷、路徑搜索等問題。DFS采用棧結(jié)構(gòu)實(shí)現(xiàn),從起點(diǎn)開始往深處遍歷,直到找到目標(biāo)節(jié)點(diǎn)或遍歷完整個圖;BFS采用隊(duì)列結(jié)構(gòu)實(shí)現(xiàn),從起點(diǎn)開始往廣處遍歷,直到找到目標(biāo)節(jié)點(diǎn)或遍歷完整個圖2023-04-04

