欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

學(xué)習(xí)Java之如何正確地跳出循環(huán)結(jié)構(gòu)

 更新時(shí)間:2023年05月21日 11:38:51   作者:一一哥Sun  
我們?cè)诶醚h(huán)執(zhí)行重復(fù)操作的過程中,存在著一個(gè)需求:如何中止,或者說提前結(jié)束一個(gè)循環(huán),所以就給大家講解一下,如何在java代碼中返回一個(gè)結(jié)果,如何結(jié)束和跳出一個(gè)循環(huán),需要的朋友可以參考下

一. break

1. 作用

break關(guān)鍵字可以用于for、while、do-while及switch語句中,用來跳出整個(gè)語句塊,結(jié)束當(dāng)前循環(huán)的執(zhí)行。 另外我們要特別注意,break 語句總是跳出自己所在的那一層循環(huán) 。 當(dāng)兩個(gè)for循環(huán)嵌套時(shí),如果break語句位于內(nèi)層的for循環(huán),它只會(huì)跳出內(nèi)層的for循環(huán),但不會(huì)跳出外層的for循環(huán)。

2. 語法

break的用法很簡單,我們?cè)谥皩W(xué)習(xí)switch時(shí)就已經(jīng)使用過了。一般就是在循環(huán)或switch語句中編寫如下一條語句:

break;

比如我們使用for循環(huán)計(jì)算從1累加到100的和時(shí),在循環(huán)內(nèi)部,我們可以使用if判斷,當(dāng)i==50就提前利用break關(guān)鍵字結(jié)束循環(huán)。因此,break經(jīng)常會(huì)配合if語句使用。

3. 案例

3.1 案例一

break會(huì)跳出當(dāng)前for循環(huán)。當(dāng)break執(zhí)行后,當(dāng)前整個(gè)for循環(huán)都會(huì)結(jié)束執(zhí)行。

/**
 * @author
 */
public class Demo01 {
    public static void main(String[] args) {
	//break關(guān)鍵字
	//需求:從1累加到100,找到累加到哪個(gè)數(shù)時(shí),就使得sum和大于888
	// 定義變量保存總和
	int sum = 0;
		
	for (int i = 1; i <= 100; i++) {
            sum = sum + i;
            if (sum > 888) {
		System.out.println("累加到"+i+"時(shí),sum和就大于888");
		// 結(jié)束當(dāng)前循環(huán)
		break;
		//這里的語句執(zhí)行不到,編譯階段就會(huì)報(bào)錯(cuò)
		//System.out.println("能執(zhí)行嗎??");
            }
            //這里的語句可以執(zhí)行,當(dāng)break跳出循環(huán)后,就不會(huì)再繼續(xù)執(zhí)行
            System.out.println("能執(zhí)行嗎??"+i); 
	}
    }
}

大家要注意,我們不能直接在break后面跟著其他語句,否則在編譯階段就會(huì)出現(xiàn)”Unreachable code“,如下圖所示:

3.2 案例二

需求:將輸入的內(nèi)容進(jìn)行輸出,如果輸入"886"就結(jié)束當(dāng)前聊天。

/**
 * @author
 */
import java.util.Scanner;

public class Demo02 {
    public static void main(String[] args) {
	//break關(guān)鍵字
	Scanner sc = new Scanner(System.in);
	while(true){
            String word = sc.next();
            if(word.equals("886")){
                //跳出當(dāng)前循環(huán)
		break;
            } 
            //輸出內(nèi)容
            System.out.println(word);            
	}
    }
}

二. continue

1. 作用

continue適用于各種循環(huán)結(jié)構(gòu)中,不能用于其他地方,用于跳過本次循環(huán),執(zhí)行下一次循環(huán) break可以跳出當(dāng)前循環(huán),即整個(gè)循環(huán)都不會(huì)執(zhí)行了。而與break不同,continue是提前結(jié)束本次循環(huán),但會(huì)繼續(xù)執(zhí)行下一次的循環(huán)。在多層嵌套的循環(huán)中,continue也可以通過標(biāo)簽指明要跳過的是哪一層循環(huán),并且同樣是只結(jié)束自己所在的循環(huán)。

2.語法

continue的用法很簡單,在循環(huán)結(jié)構(gòu)中直接使用如下語句即可:

continue;

3. 案例

3.1 案例一

需求:輸出100以內(nèi),所有不是3的倍數(shù)的整數(shù)。使用continue結(jié)束當(dāng)前循環(huán),繼續(xù)下一次循環(huán)。

/**
 * @author
 */
public class Demo03 {
    public static void main(String[] args) {
	//continue關(guān)鍵字
	//案例:輸出100以內(nèi),所有不是3的倍數(shù)的整數(shù)
	for(int i = 1; i <= 100 ; i++){
            if(i % 3 == 0){
                //結(jié)束本次循環(huán),繼續(xù)執(zhí)行下次循環(huán),并不會(huì)結(jié)束整個(gè)循環(huán),直到完成整個(gè)循環(huán)
                continue;
            }    
            System.out.println(i);
        }
    }
}

3.2 案例二

需求:將輸入的內(nèi)容進(jìn)行輸出,如果輸入"886"就結(jié)束當(dāng)前聊天。如果輸入了敏感詞匯,則用“***”替代顯示。

/**
 * @author
 */
import java.util.Scanner;

public class Demo04 {
    public static void main(String[] args) {
	//continue關(guān)鍵字
	//需求:將輸入的內(nèi)容進(jìn)行輸出,如輸入"886"就結(jié)束當(dāng)前聊天。如輸入了敏感詞匯,則用“***”替代顯示
	Scanner sc = new Scanner(System.in);
		
	while(true){
            String word = sc.next();
            if(word.equals("886")){
		//跳出整個(gè)循環(huán)
		break;
            }            
		    
            if(word.equals("WC")||word.equals("SB")){
		System.out.println("***");
                //中止本次循環(huán),繼續(xù)下一次循環(huán)
		continue;
            }
            System.out.println(word);            
	}
    }
}

4. 多層循環(huán)嵌套時(shí)的跳轉(zhuǎn)

當(dāng)多層循環(huán)嵌套時(shí),內(nèi)層循環(huán)可以使用外層循環(huán)中的變量。外層循環(huán)每循環(huán)一次,內(nèi)層循環(huán)都會(huì)完整的執(zhí)行完內(nèi)層循環(huán)的所有次數(shù)。break/continue只會(huì)控制當(dāng)前的循環(huán),當(dāng)多層循環(huán)嵌套時(shí),為了便于控制,我們可以通過給循環(huán)設(shè)定標(biāo)簽的形式來進(jìn)行控制。

4.1 語法

多層循環(huán)嵌套時(shí),帶有標(biāo)簽的語法結(jié)構(gòu)如下:

label1: { ……
    label2: { ……
        label3: { ……
            break label2;
        } 
    } 
}

當(dāng)有多層循環(huán)嵌套,我們可以給每一次循環(huán)起個(gè)標(biāo)簽名稱,名稱隨意,只要符合java里的標(biāo)識(shí)符命名規(guī)則即可。然后結(jié)合break或者continue就可以結(jié)束當(dāng)前或本次循環(huán)。

4.2 案例

這里是多層循環(huán)嵌套時(shí)帶有標(biāo)簽的案例,供大家參考如下:

/**
 * @author 
 */
public class Demo07 {
    public static void main(String[] args) {
	//多層循環(huán)嵌套
        //打印5行5列的矩形,用 * 表示
	label01:for(int i = 1 ; i <= 5 ;i++){ //控制行	
            label02:for(int j = 1 ; j <= 5 ; j++){//控制列
                System.out.print(" * ");
                //當(dāng)執(zhí)行到第3列時(shí),提前跳出循環(huán)
                if(j==3) {
                    break label02;
                    //continue label02;
                }
            }   
            //進(jìn)行換行
            System.out.println();
       }
   }
}

三. return

關(guān)于return關(guān)鍵字,今天先簡單介紹以后,后面我們?cè)趯W(xué)習(xí)Java的”方法“時(shí)會(huì)詳細(xì)講解!

1. 作用

return并不是專門用來結(jié)束循環(huán)的關(guān)鍵字,它可以用來結(jié)束一個(gè)方法或循環(huán)。當(dāng)一個(gè)方法執(zhí)行到return語句時(shí),該方法就會(huì)被結(jié)束。與break和continue不同的是,return是直接結(jié)束整個(gè)方法,不管這個(gè)return處在多少層的循環(huán)之內(nèi)。

2. 語法

return關(guān)鍵字的基本語法如下:

訪問修飾符 返回值類型 方法名(參數(shù)...){
    //方法體
    //注意:這里返回值的類型必須與方法上聲明的返回值類型一致!
    return 返回值;
}

3. 案例

因?yàn)閞eturn的用法,主要是和java里的”方法“有關(guān)系,所以在這里先簡單給大家展示兩個(gè)基本的案例,以后我們?cè)僭敿?xì)學(xué)習(xí)方法和return的內(nèi)容。

3.1 案例一

在方法中返回值指定類型的結(jié)果。

/**
 * @author 
 */
public class Demo05 {
    public static void main(String[] args) {
	// return關(guān)鍵字
	//調(diào)用定義的方法,并獲取返回結(jié)果
	String result = sayHello();
	System.out.println("result="+result);
    }
	
    //定義一個(gè)帶有String類型返回值的方法
    //訪問修飾符 返回值類型 
    public static String sayHello() {
	//本方法中只能返回String類型
	return "Hello,壹壹哥!";
    }
}

3.2 案例二

return也可以在循環(huán)中使用,用于結(jié)束整個(gè)循環(huán)。

/**
 * @author
 */
public class Demo06 {
    public static void main(String[] args) {
	// return關(guān)鍵字
	for (int i = 1; i <= 10; i++) {
            for (int j = 1; j <= 10; j++) {
                if (i + j == 10) {
                    //結(jié)束整個(gè)循環(huán)的執(zhí)行,無論循環(huán)的層次
                    return;
		}		
                System.out.println("i = " + i + ",j = " + j + ",i + j = " + (i + j));
            }
	}
	//這里執(zhí)行不到
	System.out.println("循環(huán)之后的語句");
    }
}

四. 結(jié)語

至此,就把return、break、continue這三個(gè)關(guān)鍵字給大家講解完畢了,現(xiàn)在你知道它們?nèi)叩挠梅捌鋮^(qū)別了嗎?接下來就給大家對(duì)這幾個(gè)關(guān)鍵字進(jìn)行一下總結(jié)。

1. break與continue的對(duì)比

1.1 特點(diǎn)不同

  • break語句可以跳出當(dāng)前循環(huán);
  • break語句通常配合if來使用,在滿足條件時(shí)可以提前結(jié)束整個(gè)循環(huán);
  • break語句總是跳出最近的一層循環(huán);
  • continue語句可以提前結(jié)束本次循環(huán);
  • continue語句也可以配合if語句,在滿足條件時(shí)提前結(jié)束本次循環(huán)。

1.2 使用場(chǎng)合不同

  • break可用于switch結(jié)構(gòu)和循環(huán)結(jié)構(gòu)中;
  • continue只能用于循環(huán)結(jié)構(gòu)中。

1.3 作用不同

  • break語句用于終止某個(gè)循環(huán),程序跳轉(zhuǎn)到循環(huán)塊外的下一條語句中;
  • continue語句用于跳出本次循環(huán),進(jìn)入到下一次循環(huán)。

2. continue、break、return三者的對(duì)比

  • break:結(jié)束所在的循環(huán);
  • continue:跳過本次循環(huán),繼續(xù)下一次循環(huán);
  • return:結(jié)束整個(gè)方法。

以上就是給大家總結(jié)的今天的重點(diǎn)內(nèi)容,希望你要熟練記憶這些特性哦。

以上就是學(xué)習(xí)Java之如何正確地跳出循環(huán)結(jié)構(gòu)的詳細(xì)內(nèi)容,更多關(guān)于Java 跳出循環(huán)結(jié)構(gòu)的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

最新評(píng)論