Java 精煉解讀數(shù)據(jù)結構邏輯控制
一、順序結構
程序的執(zhí)行和代碼的執(zhí)行順序有關,如果調整代碼的書寫順序, 則執(zhí)行順序也發(fā)生變化
二、分支結構
基本語法形式1:
if(布爾表達式){ ? ?
//條件滿足時執(zhí)行代碼 }
基本語法形式2
if(布爾表達式){ ? ?
//條件滿足時執(zhí)行代碼
}else{ ? ?
//條件不滿足時執(zhí)行代碼
}?
基本語法形式3 多分支的情況
if(布爾表達式){ ? ?
//條件滿足時執(zhí)行代碼
}else if(布爾表達式){ ? ?
//條件滿足時執(zhí)行代碼
}else{ ? ?
//條件都不滿足時執(zhí)行代碼
}
舉例:代碼如下
public static void main(String[] args) { int n = 10; //if里面只能是布爾表達式 if(n % 2 == 0) { System.out.println("偶數(shù)"); }else{ System.out.println("奇數(shù)"); } } }
讀入字符串?
讀入字符串,如果字符串存在空格的情況下,遇到空格結束?
如果你要讀取字符串和整數(shù),要先讀取字符串再讀取整數(shù)
?如果要簡單使用輸入函數(shù),可以用。項目當中,慎重?。。。。?!
判斷是不是閏年:
public class TestDemo { 方法1: public static void main1(String[] args) { int year = 2000; if (year % 100 == 0) { if (year % 400 == 0) { System.out.println("是閏年"); } else { System.out.println("不是閏年"); } } else { if (year % 4 == 0) { System.out.println("是閏年"); } else { System.out.println("不是閏年"); } } } 方法2: public static void main(String[] args) { int year = 2000; if(year % 100!= 0 && year % 4== 0 ||year % 400 == 0){ System.out.println("是閏年"); }else{ System.out.println("不是閏年"); } } }
懸垂 else 問題?
switch 語句?
基本語法
switch(整數(shù)|枚舉|字符|字符串){
case 內容1 : {
內容滿足時執(zhí)行語句;
[break;]
}
case 內容2 : {
內容滿足時執(zhí)行語句;
[break;]
} ...
default:{ 內容都不滿足時執(zhí)行語句;
[break;]
}
}
舉例:
public static void main(String[] args) { //long double float boolean不是不能做switch語句里面的參數(shù)的 int a = 10; switch (a){//小括號里面是一個表達式,必須是一個簡單的表達式,不能像c語言一樣,比如說a>=10 && a<=20 case 1: System.out.println("1"); break; case 2: System.out.println("2"); default: System.out.println("參數(shù)不匹配"); break; } } }
String類型可以作為Java中switch語句的參數(shù)?
根據(jù) switch 中值的不同, 會執(zhí)行對應的 case 語句. 遇到 break 就會結束該 case 語句
如果 switch 中的值沒有匹配的 case, 就會執(zhí)行 default 中的語句.
我們建議一個 switch 語句最好都要帶上 default
我們發(fā)現(xiàn), 不寫 break 的時候, case 語句會依次向下執(zhí)行, 從而失去了多分支的效果
注意事項1
break 不要遺漏, 否則會失去 "多分支選擇" 的效果
注意事項2
switch 中的值只能是 整數(shù)|枚舉|字符|字符串
注意事項3 switch 不能表達復雜的條件
// 例如: 如果 num 的值在 10 到 20 之間, 就打印 hehe
// 這樣的代碼使用 if 很容易表達, 但是使用 switch 就無法表示.
if (num > 10 && num < 20) {
System.out.println("hehe");
}
三、 循環(huán)結構
3.1 while 循環(huán)?
基本語法格式:
while(布爾表達式){
語句塊;
}
循環(huán)條件為 true, 則執(zhí)行循環(huán)語句; 否則結束循環(huán)?
舉例:
求1到10的和 public static void main(String[] args) { int i = 1; int sum = 0; while(i <=10) { sum += i; i++; } System.out.println(sum); } } 求n的階乘 public static void main(String[] args) { int j = 3; int ret = 0; int sum = 1; int i = 1; while(i<=j) { sum *=i; i++; } System.out.println(sum); }
注意事項:
1. 和 if 類似, while 下面的語句可以不寫 { } , 但是不寫的時候只能支持一條語句. 建議還是加上 { }
2. 和 if 類似, while 后面的 { 建議和 while 寫在同一行.
3. 和 if 類似, while 后面不要多寫 分號, 否則可能導致循環(huán)不能正確執(zhí)行?
3.2 break
?break 的功能是讓循環(huán)提前結束?
代碼示例:找到 100 - 200 中第一個 3 的倍數(shù)?
public static void main(String[] args) { int num = 100; while (num <= 200) { if (num % 3 == 0) { System.out.println("找到了 3 的倍數(shù), 為:" + num); break; } num++; }
//執(zhí)行結果
//找到了 3 的倍數(shù), 為:102
執(zhí)行到 break 就會讓循環(huán)結束.
3.3 continue?
?continue 的功能是跳過這次循環(huán), 立即進入下次循環(huán)
舉例:?
求1到10之間三倍數(shù) public static void main(String[] args) { int i = 1; while(i<=10) { if(i % 3 !=0 ){ i++; continue; } System.out.println(i); i++; }
執(zhí)行到 continue 語句的時候, 就會立刻進入下次循環(huán)(判定循環(huán)條件), 從而不會執(zhí)行到下方的打印語句?
總結:break結束所有循環(huán),continue結束本趟循環(huán)
?break和continue都必須在循環(huán)里,【特殊:break可以在switch語句當中】
3.4 for 循環(huán)?
基本語法:
for(布爾表達式1;布爾表達式2;布爾表達式3){
語句塊;
}
表達式1: 用于初始化循環(huán)變量.
表達式2: 循環(huán)條件
表達式3: 更新循環(huán)變量
舉例:
求1到100之間的和 public static void main(String[] args) { int sum = 0; for (int i = 1; i <= 100; i++) { sum += i; } }
注意事項 (和while循環(huán)類似)
1. 和 if 類似, for 下面的語句可以不寫 { } , 但是不寫的時候只能支持一條語句. 建議還是加上 { }
2. 和 if 類似, for 后面的 { 建議和 while 寫在同一行.
3. 和 if 類似, for 后面不要多寫 分號, 否則可能導致循環(huán)不能正確執(zhí)行.?
3.5 do while 循環(huán)(選學)?
基本語法 do{
循環(huán)語句;
}while(循環(huán)條件);
先執(zhí)行循環(huán)語句, 再判定循環(huán)條件.?
舉例:
打印1-10 public static void main(String[] args) { int num = 1; do { System.out.println(num); num++; } while (num <= 10); }
注意事項:
1. do while 循環(huán)最后的分號不要忘記
2. 一般 do while 很少用到, 更推薦使用 for 和 while.
總結:
今天還是蠻累的,加入了計劃之星第三季,要更加的忙起來了,后面我會多多刷題多多寫博客。
加油?。。。。?!
到此這篇關于Java 精煉解讀數(shù)據(jù)結構邏輯控制的文章就介紹到這了,更多相關Java 邏輯控制內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!
相關文章
spring聲明式事務 @Transactional 不回滾的多種情況以及解決方案
本文主要介紹了spring聲明式事務 @Transactional 不回滾的多種情況以及解決方案,文中通過示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下2021-11-11區(qū)分java中String+String和String+char
這篇文章主要向大家詳細區(qū)分了java中String+String和String+char,感興趣的小伙伴們可以參考一下2016-01-01Spring Boot2.0使用Spring Security的示例代碼
這篇文章主要介紹了Spring Boot2.0使用Spring Security的示例代碼,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2018-08-08Spring?Cloud?Gateway編碼實現(xiàn)任意地址跳轉
這篇文章主要介紹了Spring?Cloud?Gateway編碼實現(xiàn)任意地址跳轉的相關資料,需要的朋友可以參考下2023-06-06springboot+mybatis+redis 二級緩存問題實例詳解
Mybatis默認沒有開啟二級緩存,需要在全局配置(mybatis-config.xml)中開啟二級緩存。本文講述的是使用Redis作為緩存,與springboot、mybatis進行集成的方法。需要的朋友參考下吧2017-12-12