Java三大結(jié)構(gòu)解析之順序、選擇、循環(huán)詳解
順序結(jié)構(gòu)
java的基本結(jié)構(gòu)就是順序結(jié)構(gòu),除非特別指明,否則就按照順序一句一句執(zhí)行。
順序結(jié)構(gòu)是最簡單的算法結(jié)構(gòu)。
語句與語句之間,框與框之間是按從上到下的順序進(jìn)行的,它是由若干個依次執(zhí)行的處理步驟組成的,它是任何一個算法都離不開的一種基本算法結(jié)構(gòu)。(從上到下,依次執(zhí)行)
選擇結(jié)構(gòu)
if單選擇結(jié)構(gòu)
判斷語句是否可以執(zhí)行,可以才去執(zhí)行操作
if(布爾表達(dá)式){
//如果布爾表達(dá)式為true將執(zhí)行的語句
}public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.println("請輸入內(nèi)容:");
String s = scanner.nextLine();
//squals:判斷字符串是否相等
if (s.equals("Hello")){
System.out.println(s);
}
System.out.println("End");
scanner.close();
}if雙選擇結(jié)構(gòu)
if(布爾表達(dá)式){
//如果布爾表達(dá)式為true將執(zhí)行的語句
}else{
//如果布爾表達(dá)式為false將執(zhí)行的語句
}public static void main(String[] args) {
//考試分?jǐn)?shù)大于60就是及格,小于60分就是不及格
Scanner scanner = new Scanner(System.in);
System.out.println("請輸入成績:");
int score = scanner.nextInt();
if (score>60){
System.out.println("及格");
}else{
System.out.println("不及格");
}
scanner.close();
}if多選擇結(jié)構(gòu)
if(布爾表達(dá)式1){
//如果布爾表達(dá)式1的值為true將執(zhí)行的語句
}else if(布爾表達(dá)式2){
//如果布爾表達(dá)式2的值為true將執(zhí)行的語句
}else if(布爾表達(dá)式3){
//如果布爾表達(dá)式3的值為true將執(zhí)行的語句
}else{
//如果以上布爾表達(dá)式都不為true將執(zhí)行的語句
}public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.println("請輸入成績:");
int score = scanner.nextInt();
if (score==100){
System.out.println("滿分");
}else if (score<100 && score>=90){
System.out.println("A級");
}else if (score<90 && score>=80){
System.out.println("B級");
}else if (score<80 && score>=70){
System.out.println("C級");
}else if (score<70 && score>=60){
System.out.println("D級");
}else if (score<60 && score>=0){
System.out.println("及格");
}else{
System.out.println("成績不合法!");
}
scanner.close();
}注意:
if語句中至多有1個else語句,else語句在所有else if語句之后。
if語句可以有若干個else if語句,它們必須在else語句之前。
一旦其中一個else if語句檢測為true,其它在else if以及else語句都將跳過在執(zhí)行。
嵌套的if結(jié)構(gòu)
適用嵌套的if...else語句是合法的。也就是說可以在另一個if或者else if語句中使用if或者else if語句。你可以像if語句一樣嵌套else if...else。
if(布爾表達(dá)式1){
//如果布爾表達(dá)式1的值為true將執(zhí)行的語句
if(布爾表達(dá)式2){
//如果布爾表達(dá)式2的值為true將執(zhí)行的語句
}
}switch多選擇結(jié)構(gòu)
多選擇結(jié)構(gòu)還有一個實現(xiàn)方式就是swich case語句。
swich case語句判斷一個變量與一系列值中某個值是否相等,每個值稱為一個分支。
switch(expression){
case value:
//語句
break; //可選
case value:
//語句
break; //可選
//你可以有任意數(shù)量的case語句
default: //可選
//語句
}public static void main(String[] args) {
//case 穿透,break防穿透
char grade = 'C';
switch(grade){
case'A':
System.out.println("優(yōu)秀");
break;
case'B':
System.out.println("良好");
break;
case'C':
System.out.println("及格");
break;
case'D':
System.out.println("不及格");
break;
default:
System.out.println("未知等級");
}
}switch語句中的變量類型可以是:
byte、short、int或者char'。
從java se 7 開始 switch支持字符串String類型了。
同時case標(biāo)簽必須為字符串常量或字面量。
循環(huán)結(jié)構(gòu)
- while循環(huán)
while(布爾表達(dá)式){
//循環(huán)內(nèi)容
}只要布爾表達(dá)式為true,循環(huán)就會一直執(zhí)行下去
我們大多數(shù)情況下是會讓循環(huán)停止下來的,我們需要一個讓表達(dá)式失效的方式來結(jié)束循環(huán)。
少部分情況循環(huán)一直執(zhí)行,比如服務(wù)器的請求響應(yīng)監(jiān)聽等。
循環(huán)條件一直為true就會造成無限循環(huán)【死循環(huán)】,我們正常的業(yè)務(wù)編程中應(yīng)該盡量避免死循環(huán)。會影響程序性能或者造成程序卡死崩潰!
public static void main(String[] args) {
//輸出1到100
int i = 0;
while (i<100){
i++;
System.out.println(i);
}
}- do......while循環(huán)
對于while語句而言,如果不滿足條件,則不能進(jìn)入循環(huán)。但有時候我們需要即使不滿足條件,也至少執(zhí)行一次。
do...while循環(huán)和while循環(huán)相似,不同的是,do...while循環(huán)至少會執(zhí)行一次。
do{
//代碼語句
}while(布爾表達(dá)式); public static void main(String[] args) {
int i = 0;
int sum = 0;
do {
sum = sum + i;
i++;
}while (i<=100);
System.out.println(sum);
}while和do...while的區(qū)別:
while先判斷后執(zhí)行。do...while是先執(zhí)行后判斷!
do...while總是保證循環(huán)體會被至少執(zhí)行一次!這是他們的主要差別。
public static void main(String[] args) {
int a = 0;
while (a<0){
System.out.println(a);
a++;
}
System.out.println("-------------------");
do {
System.out.println(a);
a++;
}while (a<0);
}- for循環(huán)
雖然所有循環(huán)都可以用while或者do...while表示,但java提供了另一種語句---for循環(huán),使一些循環(huán)結(jié)構(gòu)變得更加簡單。
for循環(huán)語句是支持迭代的一種通用結(jié)構(gòu),是最有效、最靈活的循環(huán)結(jié)構(gòu)。
for循環(huán)執(zhí)行的次數(shù)是在執(zhí)行前就能確定的。語法規(guī)則如下:
for(初始化;布爾表達(dá)式;更新){
//代碼語句
}public static void main(String[] args) {
// 初始化 條件判斷 迭代、更新
for (int i = 1; i <= 100; i++) {
System.out.println(i); //循環(huán)體
}
System.out.println("for循環(huán)結(jié)束!");
}總結(jié)
到此這篇關(guān)于Java三大結(jié)構(gòu)解析之順序、選擇、循環(huán)的文章就介紹到這了,更多相關(guān)Java結(jié)構(gòu)解析順序、選擇、循環(huán)內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Spring boot中自定義Json參數(shù)解析器的方法
這篇文章主要介紹了Spring boot中自定義Json參數(shù)解析器的方法,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2019-01-01
SpringBoot打jar包遇到的xml文件丟失的解決方案
這篇文章主要介紹了SpringBoot打jar包遇到的xml文件丟失的解決方案,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2021-09-09
Spring Cloud Hystrix實現(xiàn)服務(wù)容錯的方法
Hystrix是SpringCloud中重要的熔斷保護(hù)組件,由Netflix開源,主要提供延遲和容錯管理,以保障分布式系統(tǒng)的高可用性和魯棒性,通過封裝依賴項實現(xiàn)服務(wù)間隔離,引入回退邏輯應(yīng)對依賴服務(wù)故障,有效防止系統(tǒng)崩潰和服務(wù)級聯(lián)故障2024-10-10

