java結(jié)束當前循環(huán)常用代碼
java結(jié)束當前循環(huán)常用代碼
在 Java中,當我們要結(jié)束一個循環(huán)時,通常會使用循環(huán)變量的實現(xiàn)類來結(jié)束,但在實際開發(fā)中,我們經(jīng)常會遇到某個循環(huán)結(jié)束后需要進行其他的操作的情況。此時,就需要使用循環(huán)變量來結(jié)束當前循環(huán)。
1、創(chuàng)建一個新的類,并把它添加到主程序中
首先,我們需要創(chuàng)建一個新的類,這個類可以是一個子程序,也可以是一個方法,它應(yīng)該有自己的變量和參數(shù)。在 Java中,創(chuàng)建一個新的類一般都是使用 Map來實現(xiàn)的,如圖1所示。但有些時候我們也需要自己創(chuàng)建一個類,如圖2所示。創(chuàng)建類的方法如下: 通過以上的代碼我們可以看到,它會先創(chuàng)建一個名為“cursor ()”的變量,然后將其添加到主程序中。在主程序中創(chuàng)建一個名為“cursor ()”的對象,然后調(diào)用方法“getCursor ()”獲取當前循環(huán)變量所對應(yīng)的引用。我們可以看到它的返回值為0,說明這個對象已經(jīng)被回收了。
2、將當前的循環(huán)變量設(shè)置為 cursor ()
我們可以通過下面的代碼來完成這個操作: 在上面的代碼中,我們使用了一個類,并將其添加到主程序中。在上面的代碼中,我們首先使用 cursor ()函數(shù)來獲取當前循環(huán)變量所對應(yīng)的引用,如果沒有引用,就返回 null;如果有引用,就把它賦給了新類實例;然后將新類的實例與老的循環(huán)變量進行比較。如果兩者相等,就用 return語句來終止當前的循環(huán);如果兩者不相等,就在老的循環(huán)變量上賦值給新類實例;然后執(zhí)行新類實例所對應(yīng)的對象。這樣,就完成了結(jié)束當前循環(huán)所需做的操作。
3、在主程序中創(chuàng)建一個對象作為新類的實例
當我們要結(jié)束當前循環(huán)時,可以使用循環(huán)變量的實現(xiàn)類來結(jié)束,但如果想要在主程序中創(chuàng)建一個新的對象,同樣可以使用循環(huán)變量來結(jié)束。 當我們創(chuàng)建一個新的對象時,我們需要將這個對象賦值給當前的循環(huán)變量。我們可以使用 setValue ()方法來獲取當前對象的引用,如果這個引用是指向當前對象的,則返回 null;否則返回 null。在這個例子中,我們使用一個新的類來結(jié)束當前循環(huán),而不是直接使用 cursor ()方法結(jié)束當前循環(huán)。 在 Java中,當我們需要結(jié)束一個循環(huán)時,通常會使用 cursor ()方法來結(jié)束。
4、用新類替換原有循環(huán)變量
用新類替換原有循環(huán)變量,其實是把原循環(huán)變量的作用域擴大到了新類的作用域,新類的實例不會影響原循環(huán)變量的值,而老的循環(huán)變量會被回收。不過,這種情況也不是絕對的,有些情況下,原來的循環(huán)變量仍然可以用來結(jié)束當前循環(huán)。 比如我們需要結(jié)束一個從0到num1的循環(huán),這個時候可以使用類似這樣的語句: 這樣雖然也能完成這個操作,但是沒有利用循環(huán)變量的作用域擴大到新類的作用域,所以性能上會比原來要低。 因此,在實際開發(fā)中,我們可以根據(jù)需要來選擇是使用循環(huán)變量結(jié)束當前循環(huán)還是使用新類結(jié)束當前循環(huán)。不過要注意一點的是,我們不能只選擇其中一種方式結(jié)束當前循環(huán),否則就會出現(xiàn)報錯。
5、執(zhí)行新創(chuàng)建的對象并釋放老的循環(huán)變量
3、在主程序中創(chuàng)建一個對象,并用它替換原有循環(huán)變量,然后使用 getCursor ()方法來獲取當前對象所對應(yīng)的引用,如果沒有引用,就返回 null; 7、當主程序結(jié)束時,只需要將 cursor ()方法從主程序區(qū)塊中刪除即可。 8、當要釋放循環(huán)變量所對應(yīng)的引用時,可以使用 getDraw ()方法來獲取當前對象所對應(yīng)的引用。
6、使用 getCursor ()方法來獲取當前循環(huán)變量所對應(yīng)的引用,如果沒有引用,就返回 null
7、將新添加的對象與原始的循環(huán)變量進行比較,如果相等,就釋放老的循環(huán)變量所對應(yīng)的引用,如果不相等,就返回 null 8、釋放循環(huán)變量所對應(yīng)的引用,并將其放入棧中 9、執(zhí)行當前對象 10、將對象賦值給一個新的對象,并把它從循環(huán)變量中刪除。如果有循環(huán)變量沒有被釋放,就直接從棧中取出。注意:在運行時要保證新添加的對象也被釋放了。 12、執(zhí)行當前對象并將其賦值給一個新的對象 14、如果循環(huán)變量沒有被釋放,就使用 getClass ()方法來獲取當前對象并將其賦值給一個新的對象。
7、刪除循環(huán)變量所對應(yīng)的引用,如果是空指針,就返回 null
在 Java中,類的實例對象有一個非常重要的參數(shù),就是 cursor ()。它的作用是結(jié)束當前循環(huán),并使它失效。 但是,當我們使用 cursor ()時,如果我們在類的構(gòu)造函數(shù)中定義了一個循環(huán)變量,那么這個對象就會在這個構(gòu)造函數(shù)中被初始化,直到它被調(diào)用來結(jié)束當前循環(huán)。也就是說,在類的構(gòu)造函數(shù)中定義了一個 cursor ()方法來結(jié)束當前循環(huán)的方法。 那么問題來了:在使用 cursor ()方法結(jié)束當前循環(huán)時,如果我們有一個類對象是非靜態(tài)的,那它會不會被初始化呢?這也是 Java中必須要考慮的問題。 解決方案:在類的構(gòu)造函數(shù)中定義一個非靜態(tài)的類對象來代替循環(huán)變量。
常用的java結(jié)束當前循環(huán)代碼:
1. 使用break語句結(jié)束當前循環(huán):
for?(int?i?=?0;?i?<?10;?i++)?{ if?(i?==?5)?{ break; } System.out.println(i); }
2. 使用continue語句跳過當前循環(huán):
for?(int?i?=?0;?i?<?10;?i++)?{ if?(i?==?5)?{ continue; } System.out.println(i); }
3. 使用return語句結(jié)束當前方法:
public?void?test()?{ for?(int?i?=?0;?i?<?10;?i++)?{ if?(i?==?5)?{ return; } System.out.println(i); } }
4. 使用標簽(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é)束當前循環(huán)常用代碼的文章就介紹到這了,更多相關(guān)java結(jié)束當前循環(huán)內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Spring Boot 3 集成 RabbitMQ 實踐指南(原理解析
本文介紹了SpringBoot 3集成RabbitMQ的實踐指南,涵蓋了RabbitMQ的核心原理、核心概念、高級特性、應(yīng)用場景、環(huán)境搭建、核心配置類、消息生產(chǎn)者、消息消費者、接口控制器、監(jiān)控與運維、最佳實踐以及常見問題與解決方案等內(nèi)容,感興趣的朋友一起看看吧2025-02-02已解決:No ''Access-Control-Allow-Origin''跨域問題
這篇文章主要介紹了已解決:No 'Access-Control-Allow-Origin' 跨域,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2020-06-06MybatisPlusException:Failed?to?process,Error?SQL異常報錯的解決辦法
這篇文章主要給大家介紹了關(guān)于MybatisPlusException:Failed?to?process,Error?SQL異常報錯的解決辦法,文中通過實例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下2023-03-03springcloud整合gateway實現(xiàn)網(wǎng)關(guān)全局過濾器功能
本文主要介紹了springcloud整合gateway實現(xiàn)網(wǎng)關(guān)全局過濾器功能,文中通過示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下2022-02-02JDK9為何要將String的底層實現(xiàn)由char[]改成了byte[]
String 類的源碼已經(jīng)由?char[]?優(yōu)化為了?byte[]?來存儲字符串內(nèi)容,為什么要這樣做呢?本文就詳細的介紹一下,感興趣的可以了解一下2022-03-03