一步带你了解java程序逻辑控制
目錄
一.java中的程序邏輯分類
1.順序結構:
2.分支結構
(1)單分支結構(if語句)
(2)多分支結構(if-else if-else)
(3)switch語句
注意事項:
3循環結構
(1)while循環
注意事項
(2)break與continue
(2)for循環
(3)do-while循環結構
注意事項:
二 java 中的輸入與輸出
1? 輸出到控制臺
2 從鍵盤輸入
三 習題練習
一.java中的程序邏輯分類
1.順序結構:
此類代碼比較簡單,就代碼一步一步的按照順序執行。
System.out.println("a"); System.out.println("b"); System.out.println("c"); // 運行結果 a b c2.分支結構
(1)單分支結構(if語句)
基本語法格式1:
if(布爾表達式){//條件滿足時執行代碼 }基本語法格式2:
if(布爾表達式){//條件滿足時執行代碼 }else{//條件不滿足時執行代碼 }(2)多分支結構(if-else if-else)
語法格式:
if(布爾表達式){//條件滿足時執行代碼 }else if(布爾表達式){//條件滿足時執行代碼 }else{//條件都不滿足時執行代碼 }1 注意事項1:懸垂else問題
int x = 10; int y = 10; if (x == 10) if (y == 10)System.out.println("aaa"); elseSystem.out.println("bbb");同C語言一樣,else與最近的if進行匹配,但在實際的開發中會增加代碼閱讀的難度,最好要加上大括號,避免這種懸垂else問題。
2 注意事項2:代碼風格問題
// 風格1 int x = 10; if (x == 10) {// 滿足條件 } else {// 不滿足條件 } // 風格2 int x = 10; if (x == 10) {// 滿足條件 } else {// 不滿足條件 }在java中我們一般推薦使用風格1,把if/else放在同一行
3 注意事項三:分號問題
int x = 20; if (x == 10); {System.out.println("hehe"); } // 運行結果 hehe因為這里有這個分號,導致分號成為if的語句體,從而使得{}中的代碼與if無關
(3)switch語句
基本語法格式:
switch(整數|枚舉|字符|字符串){case 內容1 : {內容滿足時執行語句;[break;]}case 內容2 : {內容滿足時執行語句;[break;]}...default:{內容都不滿足時執行語句;[break;]}switch中的值不一樣,就會執行不同的case語句,遇到break才結束,不然會一直往下執行。switch值case如果都沒有與之對應,就會執行默認的default語句
注意事項:
1.break不要遺落,否則會失去多分支的效果
int day = 1; switch(day) {case 1:System.out.println("星期一");// break;case 2:System.out.println("星期二");break; } // 運行結果 星期一 星期二2注意switch中的值只有整數|枚舉|字符|字符串才能符合
double num = 1.0; switch(num) {case 1.0:System.out.println("hehe");break;case 2.0:System.out.println("haha");break; } // 編譯出錯 Test.java:4: 錯誤: 不兼容的類型: 從double轉換到int可能會有損失在java中,在8中基本數據類型不能做switch參數的數據類型:long,float,double,boolean
3 switch不能表達復雜的條件
// 例如: 如果 num 的值在 10 到 20 之間, 就打印 hehe // 這樣的代碼使用 if 很容易表達, 但是使用 switch 就無法表示. if (num > 10 && num < 20) {System.out.println("hehe"); }4 switch支持嵌套的,但是很丑,switch的局限還是比較大的。
3循環結構
(1)while循環
基本語法格式:
while(循環條件){ 循環語句; }循環條件為true就執行,false則退出循環
注意事項
1.和if類似,while后面的{}可以不加,但不加只能支持一條語句
2和if類似,while后面的{建議與while寫在同一行
3和if類似,while后面不要多加分號,否則導致循環不能正確執行
int num = 1; while (num <= 10); { System.out.println(num); num++; } // 執行結果,此時 ; 為 while 的語句體(這是一個空語句), 實際的 { } 部分和循環無關. 此時循環條件 num <= 10 恒成立, 導致代碼 死循環了 [無任何輸出, 程序死循環](2)break與continue
1 break就是讓循環提前結束
//找到 100 - 200 中第一個 3 的倍數 int num = 100; while (num <= 200) { if (num % 3 == 0) { System.out.println("找到了 3 的倍數, 為:" + num); break; } num++; } // 執行結果 找到了 3 的倍數, 為:1022 continue就是跳過本次循環,進入下一次的循環
//找到 100 - 200 中第一個 3 的倍數 int num = 100; while (num <= 200) { if (num % 3 != 0) { num++; // 這里的 ++ 不要忘記! 否則會死循環. continue; } System.out.println("找到了 3 的倍數, 為:" + num); num++; } //執行到 continue 語句的時候, 就會立刻進入下次循環(判定循環條件), 從而不會執行到下方的打印語句.(2)for循環
基本語法格式:
for(表達式1;表達式2;表達式3){ 循環體; } //表達式1: 用于初始化循環變量. //表達式2: 循環條件 //表達式3: 更新循環變量.注意事項同while
(3)do-while循環結構
基本語法格式
do{ 循環語句; }while(循環條件);一般先執行語句在判定條件
注意事項:
不要忘記while后面還有分號
二 java 中的輸入與輸出
1? 輸出到控制臺
基本語法
System.out.println(a); // 輸出一個字符串, 帶換行 System.out.print(a); // 輸出一個字符串, 不帶換行 Systemprintln 輸出的內容自帶 \n, print 不帶 \nprintln是自帶\n的,print是不帶\n的
printf的輸出同C語言中的printf一致
2 從鍵盤輸入
1 使用Scanner讀取字符串/整數/浮點數
import java.util.Scanner; // 需要導入 util 包 Scanner sc = new Scanner(System.in); System.out.println("請輸入你的姓名:"); String name = sc.nextLine(); System.out.println("請輸入你的年齡:"); int age = sc.nextInt(); System.out.println("請輸入你的工資:"); float salary = sc.nextFloat(); System.out.println("你的信息如下:"); System.out.println("姓名: "+name+"\n"+"年齡:"+age+"\n"+"工資:"+salary); sc.close(); // 注意, 要記得調用關閉方法 // 執行結果 請輸入你的姓名: 張三 請輸入你的年齡: 18 請輸入你的工資: 1000 你的信息如下: 姓名: 張三 年齡:18 工資:1000.02 使用Scanner循環讀取N個數字
Scanner sc = new Scanner(System.in); double sum = 0.0; int num = 0; while (sc.hasNextDouble()) { double tmp = sc.nextDouble(); sum += tmp; num++; } System.out.println("sum = " + sum); System.out.println("avg = " + sum / num); // 執行結果 10 40.0 50.5 ^Z sum = 150.5 avg = 30.1 sc.close();注意事項:
當循環輸入多個數據時,使用ctrl+z結束輸入(Windows上使用ctrl+z,linux/mac上使用ctrl+d)
三 習題練習
最重要的法寶當然還得是多做多練,多理解,這里也為大家提供了相應的習題進行練習鏈接:https://mp.csdn.net/mp_blog/creation/editor/120815489
總結
以上是生活随笔為你收集整理的一步带你了解java程序逻辑控制的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: java中8种基本类型与运算符
- 下一篇: java中递归实例