java結(jié)束當(dāng)前循環(huán)常用代碼
java結(jié)束當(dāng)前循環(huán)常用代碼

在 Java中,當(dāng)我們要結(jié)束一個(gè)循環(huán)時(shí),通常會(huì)使用循環(huán)變量的實(shí)現(xiàn)類來結(jié)束,但在實(shí)際開發(fā)中,我們經(jīng)常會(huì)遇到某個(gè)循環(huán)結(jié)束后需要進(jìn)行其他的操作的情況。此時(shí),就需要使用循環(huán)變量來結(jié)束當(dāng)前循環(huán)。
1、創(chuàng)建一個(gè)新的類,并把它添加到主程序中
首先,我們需要?jiǎng)?chuàng)建一個(gè)新的類,這個(gè)類可以是一個(gè)子程序,也可以是一個(gè)方法,它應(yīng)該有自己的變量和參數(shù)。在 Java中,創(chuàng)建一個(gè)新的類一般都是使用 Map來實(shí)現(xiàn)的,如圖1所示。但有些時(shí)候我們也需要自己創(chuàng)建一個(gè)類,如圖2所示。創(chuàng)建類的方法如下: 通過以上的代碼我們可以看到,它會(huì)先創(chuàng)建一個(gè)名為“cursor ()”的變量,然后將其添加到主程序中。在主程序中創(chuàng)建一個(gè)名為“cursor ()”的對(duì)象,然后調(diào)用方法“getCursor ()”獲取當(dāng)前循環(huán)變量所對(duì)應(yīng)的引用。我們可以看到它的返回值為0,說明這個(gè)對(duì)象已經(jīng)被回收了。
2、將當(dāng)前的循環(huán)變量設(shè)置為 cursor ()
我們可以通過下面的代碼來完成這個(gè)操作: 在上面的代碼中,我們使用了一個(gè)類,并將其添加到主程序中。在上面的代碼中,我們首先使用 cursor ()函數(shù)來獲取當(dāng)前循環(huán)變量所對(duì)應(yīng)的引用,如果沒有引用,就返回 null;如果有引用,就把它賦給了新類實(shí)例;然后將新類的實(shí)例與老的循環(huán)變量進(jìn)行比較。如果兩者相等,就用 return語句來終止當(dāng)前的循環(huán);如果兩者不相等,就在老的循環(huán)變量上賦值給新類實(shí)例;然后執(zhí)行新類實(shí)例所對(duì)應(yīng)的對(duì)象。這樣,就完成了結(jié)束當(dāng)前循環(huán)所需做的操作。
3、在主程序中創(chuàng)建一個(gè)對(duì)象作為新類的實(shí)例
當(dāng)我們要結(jié)束當(dāng)前循環(huán)時(shí),可以使用循環(huán)變量的實(shí)現(xiàn)類來結(jié)束,但如果想要在主程序中創(chuàng)建一個(gè)新的對(duì)象,同樣可以使用循環(huán)變量來結(jié)束。 當(dāng)我們創(chuàng)建一個(gè)新的對(duì)象時(shí),我們需要將這個(gè)對(duì)象賦值給當(dāng)前的循環(huán)變量。我們可以使用 setValue ()方法來獲取當(dāng)前對(duì)象的引用,如果這個(gè)引用是指向當(dāng)前對(duì)象的,則返回 null;否則返回 null。在這個(gè)例子中,我們使用一個(gè)新的類來結(jié)束當(dāng)前循環(huán),而不是直接使用 cursor ()方法結(jié)束當(dāng)前循環(huán)。 在 Java中,當(dāng)我們需要結(jié)束一個(gè)循環(huán)時(shí),通常會(huì)使用 cursor ()方法來結(jié)束。
4、用新類替換原有循環(huán)變量
用新類替換原有循環(huán)變量,其實(shí)是把原循環(huán)變量的作用域擴(kuò)大到了新類的作用域,新類的實(shí)例不會(huì)影響原循環(huán)變量的值,而老的循環(huán)變量會(huì)被回收。不過,這種情況也不是絕對(duì)的,有些情況下,原來的循環(huán)變量仍然可以用來結(jié)束當(dāng)前循環(huán)。 比如我們需要結(jié)束一個(gè)從0到num1的循環(huán),這個(gè)時(shí)候可以使用類似這樣的語句: 這樣雖然也能完成這個(gè)操作,但是沒有利用循環(huán)變量的作用域擴(kuò)大到新類的作用域,所以性能上會(huì)比原來要低。 因此,在實(shí)際開發(fā)中,我們可以根據(jù)需要來選擇是使用循環(huán)變量結(jié)束當(dāng)前循環(huán)還是使用新類結(jié)束當(dāng)前循環(huán)。不過要注意一點(diǎn)的是,我們不能只選擇其中一種方式結(jié)束當(dāng)前循環(huán),否則就會(huì)出現(xiàn)報(bào)錯(cuò)。
5、執(zhí)行新創(chuàng)建的對(duì)象并釋放老的循環(huán)變量
3、在主程序中創(chuàng)建一個(gè)對(duì)象,并用它替換原有循環(huán)變量,然后使用 getCursor ()方法來獲取當(dāng)前對(duì)象所對(duì)應(yīng)的引用,如果沒有引用,就返回 null; 7、當(dāng)主程序結(jié)束時(shí),只需要將 cursor ()方法從主程序區(qū)塊中刪除即可。 8、當(dāng)要釋放循環(huán)變量所對(duì)應(yīng)的引用時(shí),可以使用 getDraw ()方法來獲取當(dāng)前對(duì)象所對(duì)應(yīng)的引用。
6、使用 getCursor ()方法來獲取當(dāng)前循環(huán)變量所對(duì)應(yīng)的引用,如果沒有引用,就返回 null
7、將新添加的對(duì)象與原始的循環(huán)變量進(jìn)行比較,如果相等,就釋放老的循環(huán)變量所對(duì)應(yīng)的引用,如果不相等,就返回 null 8、釋放循環(huán)變量所對(duì)應(yīng)的引用,并將其放入棧中 9、執(zhí)行當(dāng)前對(duì)象 10、將對(duì)象賦值給一個(gè)新的對(duì)象,并把它從循環(huán)變量中刪除。如果有循環(huán)變量沒有被釋放,就直接從棧中取出。注意:在運(yùn)行時(shí)要保證新添加的對(duì)象也被釋放了。 12、執(zhí)行當(dāng)前對(duì)象并將其賦值給一個(gè)新的對(duì)象 14、如果循環(huán)變量沒有被釋放,就使用 getClass ()方法來獲取當(dāng)前對(duì)象并將其賦值給一個(gè)新的對(duì)象。
7、刪除循環(huán)變量所對(duì)應(yīng)的引用,如果是空指針,就返回 null
在 Java中,類的實(shí)例對(duì)象有一個(gè)非常重要的參數(shù),就是 cursor ()。它的作用是結(jié)束當(dāng)前循環(huán),并使它失效。 但是,當(dāng)我們使用 cursor ()時(shí),如果我們?cè)陬惖臉?gòu)造函數(shù)中定義了一個(gè)循環(huán)變量,那么這個(gè)對(duì)象就會(huì)在這個(gè)構(gòu)造函數(shù)中被初始化,直到它被調(diào)用來結(jié)束當(dāng)前循環(huán)。也就是說,在類的構(gòu)造函數(shù)中定義了一個(gè) cursor ()方法來結(jié)束當(dāng)前循環(huán)的方法。 那么問題來了:在使用 cursor ()方法結(jié)束當(dāng)前循環(huán)時(shí),如果我們有一個(gè)類對(duì)象是非靜態(tài)的,那它會(huì)不會(huì)被初始化呢?這也是 Java中必須要考慮的問題。 解決方案:在類的構(gòu)造函數(shù)中定義一個(gè)非靜態(tài)的類對(duì)象來代替循環(huán)變量。
常用的java結(jié)束當(dāng)前循環(huán)代碼:
1. 使用break語句結(jié)束當(dāng)前循環(huán):
for?(int?i?=?0;?i?<?10;?i++)?{
if?(i?==?5)?{
break;
}
System.out.println(i);
}2. 使用continue語句跳過當(dāng)前循環(huán):
for?(int?i?=?0;?i?<?10;?i++)?{
if?(i?==?5)?{
continue;
}
System.out.println(i);
}3. 使用return語句結(jié)束當(dāng)前方法:
public?void?test()?{
for?(int?i?=?0;?i?<?10;?i++)?{
if?(i?==?5)?{
return;
}
System.out.println(i);
}
}4. 使用標(biāo)簽(label)和break語句結(jié)束指定循環(huán):
outer:
for?(int?i?=?0;?i?<?10;?i++)?{
for?(int?j?=?0;?j?<?10;?j++)?{
if?(i?==?5?&&?j?==?5)?{
break?outer;
}
System.out.println(i?+?","?+?j);
}
}到此這篇關(guān)于java結(jié)束當(dāng)前循環(huán)常用代碼的文章就介紹到這了,更多相關(guān)java結(jié)束當(dāng)前循環(huán)內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Java(TM) Platform SE binary 打開jar文件的操作
這篇文章主要介紹了Java(TM) Platform SE binary 打開jar文件的操作,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2021-02-02
java正則表達(dá)式匹配規(guī)則超詳細(xì)總結(jié)
正則表達(dá)式并不僅限于某一種語言,但是在每種語言中有細(xì)微的差別,下面這篇文章主要給大家介紹了關(guān)于java正則表達(dá)式匹配規(guī)則的相關(guān)資料,文中通過實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下2022-10-10
MyBatisX代碼自動(dòng)生成的實(shí)現(xiàn)示例
本文主要介紹了MyBatisX代碼自動(dòng)生成的實(shí)現(xiàn)示例, 文中通過圖文示例介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2025-05-05
SpringBoot Bean被加載時(shí)進(jìn)行控制
很多時(shí)候我們需要根據(jù)不同的條件在容器中加載不同的Bean,或者根據(jù)不同的條件來選擇是否在容器中加載某個(gè)Bean,這就是Bean的加載控制,一般我們可以通過編程式或注解式兩種不同的方式來完成Bean的加載控制2023-02-02
SpringBoot 整合WebSocket 前端 uniapp 訪問的詳細(xì)方法
這篇文章主要介紹了SpringBoot 整合WebSocket 前端 uniapp 訪問的詳細(xì)方法,本文通過實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2023-09-09
Java 實(shí)現(xiàn)協(xié)同過濾算法推薦算法的示例代碼
本文介紹了協(xié)同過濾算法的概念,包括基于用戶的協(xié)同過濾和基于物品的協(xié)同過濾,文章詳細(xì)解釋了數(shù)據(jù)準(zhǔn)備、相似度計(jì)算以及如何在Java中實(shí)現(xiàn)這些算法,通過一個(gè)簡(jiǎn)單的用戶-物品評(píng)分矩陣示例,展示了如何計(jì)算用戶和物品之間的相似度,并推薦未評(píng)分的物品,感興趣的朋友一起看看吧2025-02-02
JavaWeb之Servlet注冊(cè)頁面的實(shí)現(xiàn)示例
注冊(cè)頁面是很多網(wǎng)站都會(huì)是使用的到,本文主要介紹了JavaWeb之Servlet注冊(cè)頁面的實(shí)現(xiàn)示例,文中通過示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2022-04-04

