Java中的循環(huán)筆記整理(必看篇)
一、循環(huán)的類型:
1、for循環(huán)
class For{ public static void main(String[] args) { System.out.println("Hello World!"); System.out.println("Hello World!"); System.out.println("Hello World!"); System.out.println("Hello World!"); System.out.println("我是分隔符~~~~~~~~~~~~~~~~~~~~~~~~"); for(int i = 0; i < 4; i++){ System.out.println("Hello World!"); } } }
運(yùn)行結(jié)果:
2、while() {}
class TestWhile { public static void main(String[] args) { //100以內(nèi)的偶數(shù)的輸出 int i = 1; int sum = 0; while(i <= 100){ if(i % 2 == 0){ System.out.println(i); sum += i; } i++; } System.out.println(sum); //System.out.println(i); } }
運(yùn)行結(jié)果:
3、do{}while()
class DoWhile{ public static void main(String[] args) { int i = 1; do{ if(i % 2 == 0){ System.out.print(i + "\t"); } i++; }while(i <= 100); } }
運(yùn)行結(jié)果:
二、格式:
所有的循環(huán)結(jié)構(gòu)都必須包含以下4部分:
1、初始化條件;
2、循環(huán)條件;
3、迭代條件;
4、循環(huán)體;
1、for循環(huán)格式:
/* 所有的循環(huán)結(jié)構(gòu)都必須包含以下4部分: 1、初始化條件; 2、循環(huán)條件; 3、迭代條件; 4、循環(huán)體; 在這段代碼中與格式的對(duì)應(yīng)關(guān)系為: 1、初始化條件 = int i = 0; 2、循環(huán)條件 = i < 4; 3、迭代條件 = i++; 4、循環(huán)體 = System.out.println("Hello World!"); */ class For{ public static void main(String[] args) { for(int i = 0; i < 4; i++){ System.out.println("Hello World!"); } } }
2、while循環(huán)格式:
/* 所有的循環(huán)結(jié)構(gòu)都必須包含以下4部分: 1、初始化條件; 2、循環(huán)條件; 3、迭代條件; 4、循環(huán)體; 在這段代碼中與格式的對(duì)應(yīng)關(guān)系為: 1、初始化條件 = int i = 1;int sum = 0;; 2、循環(huán)條件 = i <= 100; 3、迭代條件 = i++; 4、循環(huán)體 = if語句; */ class TestWhile { public static void main(String[] args) { //100以內(nèi)的偶數(shù)的輸出 int i = 1; int sum = 0; while(i <= 100){ if(i % 2 == 0){ System.out.print(i +"\t"); sum += i; } i++; } System.out.print(sum); } }
3、do{4 3}while(2);
/* 所有的循環(huán)結(jié)構(gòu)都必須包含以下4部分: 1、初始化條件; 2、循環(huán)條件; 3、迭代條件; 4、循環(huán)體; 在這段代碼中與格式的對(duì)應(yīng)關(guān)系為: 1、初始化條件 = int i = 1; 2、循環(huán)條件 = i <= 100; 3、迭代條件 = i++; 4、循環(huán)體 = if語句; */ class TestDoWhile{ public static void main(String[] args) { int i = 1; do{ if(i % 2 == 0){ System.out.println(i); } i++; }while(i <= 100); int j = 10; do{ System.out.println(j); j++; }while(j<10); while(j < 10){ System.out.println(j); j++; } } }
注意:
1、不同的循環(huán)結(jié)構(gòu)之間可以相互轉(zhuǎn)換;
2、while和do-while的區(qū)別:do-while程序至少會(huì)執(zhí)行一次;
三、嵌套循環(huán):
說明:循環(huán)結(jié)構(gòu)中還可以聲明循環(huán);讓內(nèi)層循環(huán)結(jié)構(gòu)整體充當(dāng)外層循環(huán)的循環(huán)體;若外層循環(huán)執(zhí)行m次,內(nèi)層循環(huán)執(zhí)行N次,整個(gè)程序執(zhí)行m*n次。
可以理解為外層循環(huán)控制行數(shù),內(nèi)層循環(huán)控制列數(shù);
例:
class TestFor2 { public static void main(String[] args) { for(int j = 0;j < 4;j++){//外層循環(huán)控制行數(shù) for(int i = 0;i < 5;i++){//內(nèi)層循環(huán)控制列數(shù) System.out.print("*"); } System.out.println(); } } }
運(yùn)行結(jié)果:
練習(xí)題
1、九九乘法表
class TestJiuJiu { public static void main(String[] args) { for(int i = 1;i <= 9;i++){ for(int j = 1;j <= i;j++){ System.out.print(i + "*" + j + "=" + i*j + "\t"); } System.out.println(); } } }
運(yùn)行結(jié)果:
2、輸出100內(nèi)的質(zhì)數(shù)(兩種方法實(shí)現(xiàn))
第一種:
class TestPrimeNumber { public static void main(String[] args) { boolean flag = false; long start = System.currentTimeMillis(); for(int i = 2;i <= 100000;i++){//實(shí)現(xiàn)100以內(nèi)的自然數(shù)的遍歷 //如何判斷i是否為一個(gè)質(zhì)數(shù) for(int j = 2;j <= Math.sqrt(i);j++){ if(i % j == 0){ flag = true; break; } } if(!flag){ System.out.println(i); } flag = false; } long end = System.currentTimeMillis(); System.out.println("所花費(fèi)的時(shí)間為:" + (end - start)); } }
運(yùn)行結(jié)果:由于數(shù)據(jù)過多,這里使用運(yùn)營(yíng)時(shí)間來表示
第二種:這種方式主要是為了顯示運(yùn)行的效率,這里也是使用運(yùn)行時(shí)間來表示。
class TestPrimeNumber1 { public static void main(String[] args) { //boolean flag = false; long start = System.currentTimeMillis(); l:for(int i = 2;i <= 100000;i++){//實(shí)現(xiàn)100以內(nèi)的自然數(shù)的遍歷 //如何判斷i是否為一個(gè)質(zhì)數(shù) for(int j = 2;j <= Math.sqrt(i);j++){ if(i % j == 0){ //flag = true; //break; continue l; } } //if(!flag){ //System.out.println(i); //} //flag = false; } long end = System.currentTimeMillis(); System.out.println("所花費(fèi)的時(shí)間為:" + (end - start)); } }
運(yùn)行結(jié)果:
四、無限循環(huán)
當(dāng)需要使用無限循環(huán)時(shí),將循環(huán)的循環(huán)條件修改為true即可(代碼格式請(qǐng)參考第二部分),但是需要注意的是,在無限循環(huán)結(jié)果內(nèi)部一定要提供循環(huán)的終止條件(使用break關(guān)鍵字)否則程序?qū)o限制的執(zhí)行下去,形成死循環(huán);
五、break和continue:
1、break:
1、使用在swich-case結(jié)構(gòu)或者循環(huán)結(jié)構(gòu)中;
2、在循環(huán)結(jié)構(gòu)中,一旦執(zhí)行到break,就跳出當(dāng)前循環(huán)。
2、continue:
1、使用在循環(huán)結(jié)構(gòu)中;
2、在循環(huán)結(jié)構(gòu)中,一旦執(zhí)行到continue就跳出當(dāng)次循環(huán);
3、在嵌套循環(huán)中,可以使用帶標(biāo)簽的break和continue。
例:
class TestPrimeNumber1 { public static void main(String[] args) { //boolean flag = false; long start = System.currentTimeMillis(); l:for(int i = 2;i <= 100000;i++){//實(shí)現(xiàn)100以內(nèi)的自然數(shù)的遍歷 //如何判斷i是否為一個(gè)質(zhì)數(shù) for(int j = 2;j <= Math.sqrt(i);j++){ if(i % j == 0){ //flag = true; //break; continue l; } } //if(!flag){ //System.out.println(i); //} //flag = false; } long end = System.currentTimeMillis(); System.out.println("所花費(fèi)的時(shí)間為:" + (end - start)); } }
注意:請(qǐng)注意第5行代碼(l:for(int i = 2;i <= 100000;i++))以及第11行代碼(continue l;),在第五行代碼前邊寫了一個(gè)l:的標(biāo)簽,然后在第11行代碼處進(jìn)行調(diào)用,如果程序執(zhí)行到這里會(huì)自動(dòng)跳出此循環(huán),然后從第五行開始執(zhí)行;
六、數(shù)組:
1、定義:相同數(shù)據(jù)類型的數(shù)據(jù)的組合。
不使用數(shù)組的定義方式:
int i1 = 1; int i2 = 2; int i3 = 3;
使用數(shù)組的定義方式:
1、靜態(tài)初始化:在聲明并初始化數(shù)組與給數(shù)組相應(yīng)的元素賦值操作同時(shí)進(jìn)行;
int[] scores = new int[]{72,90,59};
2、動(dòng)態(tài)初始化:在聲明并初始化數(shù)組與給數(shù)組相應(yīng)的元素賦值操作分開進(jìn)行;
int[] scores1 = new int[3];
socres1[0] = 72;
socres1[1] = 90;
socres1[2] = 59;
2、數(shù)組的初始化問題(以下的初始化為錯(cuò)誤的初始化方式):
String[] names = new String[5]{"AA","BB","CC"}
int i = new int[10];
int i = new int[];
注意:不管是動(dòng)態(tài)初始化還是靜態(tài)初始化,一定要在創(chuàng)建的時(shí)候就指明數(shù)組的長(zhǎng)度;
3、數(shù)組的引用:
1、通過數(shù)組下角標(biāo)的方式來進(jìn)行引用;下角標(biāo)從0開始到n-1結(jié)束,其中n為數(shù)組的長(zhǎng)度。
2、數(shù)組的長(zhǎng)度通過length屬性來調(diào)用;
代碼
3、如何遍歷數(shù)組:使用循環(huán)來進(jìn)行遍歷
for(int i = 0,i < scores1.length;i++){
System.out.println(scores1[i]);
}
代碼展示:
public class TestArray { public static void main(String[] args){ int i1; i1 = 12; boolean b = true; //1.如何定義一個(gè)數(shù)組 //1.1數(shù)組的聲明 String[] names; int[] scores; //1.2初始化 //第一種:靜態(tài)初始化:初始化數(shù)組與給數(shù)組元素賦值同時(shí)進(jìn)行。 names = new String[]{"張三","李四","王五"}; //第二種:動(dòng)態(tài)初始化:初始化數(shù)組與給數(shù)組元素賦值是分開進(jìn)行的; scores = new int[4]; //2.如何調(diào)用相應(yīng)的數(shù)組元素:通過數(shù)組元素的下角標(biāo)的方式來調(diào)用。 //下角標(biāo)從0開始,到n-1結(jié)束。其中N表示的是數(shù)組的長(zhǎng)度。 scores[0] = 87; scores[1] = 89; scores[3] = 98; //3。數(shù)組的長(zhǎng)度:通過數(shù)組的length屬性。 System.out.println(names.length); System.out.println(scores.length); //4.如何遍歷數(shù)組元素 // System.out.println(names[0]); // System.out.println(names[1]); // System.out.println(names[2]); for(int i = 0;i < names.length;i++){ System.out.println(names[i]); } } }
以上這篇Java中的循環(huán)筆記整理(必看篇)就是小編分享給大家的全部?jī)?nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
SpringBoot項(xiàng)目集成依賴Mybatis步驟
在本篇文章中小編給大家分享了關(guān)于SpringBoot項(xiàng)目如何集成依賴Mybatis的相關(guān)知識(shí)點(diǎn)內(nèi)容,有興趣的朋友們學(xué)習(xí)下。2019-06-06java輸出1~100之間的全部素?cái)?shù)的5種方式總結(jié)
這篇文章主要介紹了java輸出1~100之間的全部素?cái)?shù)的5種方式總結(jié),具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-02-02Skywalking改成適配阿里云等帶Http?Basic的Elasticsearch服務(wù)
這篇文章主要介紹了改造Skywalking支持阿里云等帶Http?Basic的Elasticsearch服務(wù)2022-02-02Java spring事務(wù)及事務(wù)不生效的原因詳解
在日常編碼過程中常常涉及到事務(wù),在前兩天看到一篇文章提到了Spring事務(wù),那么在此總結(jié)下在Spring環(huán)境下事務(wù)失效的幾種原因2021-09-09Spring學(xué)習(xí)之動(dòng)態(tài)代理(JDK動(dòng)態(tài)代理和CGLIB動(dòng)態(tài)代理)
本篇文章主要介紹了Spring學(xué)習(xí)之動(dòng)態(tài)代理(JDK動(dòng)態(tài)代理和CGLIB動(dòng)態(tài)代理),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2017-07-07SpringBoot自定義maven-plugin插件整合asm代碼插樁
本文主要介紹了SpringBoot自定義maven-plugin插件整合asm代碼插樁,文中通過示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2022-02-02jackson 如何將實(shí)體轉(zhuǎn)json json字符串轉(zhuǎn)實(shí)體
這篇文章主要介紹了jackson 實(shí)現(xiàn)將實(shí)體轉(zhuǎn)json json字符串轉(zhuǎn)實(shí)體,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2021-10-10