java for循环_愉快地学Java语言:第五章 循环
導(dǎo)讀
本文適合Java入門,不太適合Java中高級(jí)軟件工程師。本文以《Java程序設(shè)計(jì)基礎(chǔ)篇》第10版為藍(lán)本,采用不斷提出問(wèn)題,然后解答問(wèn)題的方式來(lái)講述。本篇文章只是這個(gè)系列中的一篇,如果你喜歡這種講解方式,或者覺(jué)得從中能學(xué)到知識(shí),可以關(guān)注我,以便查閱本系列其他文章。
讓我們開(kāi)始愉快地學(xué)習(xí)Java語(yǔ)言吧!
用循環(huán)干什么呢?
我們用循環(huán)來(lái)重復(fù)地執(zhí)行一條或多條語(yǔ)句。
1while循環(huán)
語(yǔ)法:
while(循環(huán)繼續(xù)條件){// 循環(huán)體一條或多條語(yǔ)句;}循環(huán)繼續(xù)條件是布爾表達(dá)式,只有其為真(true)時(shí),才執(zhí)行循環(huán)體,直到其為假為止。
循環(huán)體只有一條語(yǔ)句時(shí)可以省略大括號(hào):
while(循環(huán)繼續(xù)條件)一條語(yǔ)句;如果循環(huán)繼續(xù)條件永遠(yuǎn)為真,那么循環(huán)永遠(yuǎn)不結(jié)束,我們稱之為死循環(huán)。
死循環(huán)有啥危害呢?
一直執(zhí)行循環(huán)體內(nèi)的語(yǔ)句,無(wú)法執(zhí)行循環(huán)之后的其他語(yǔ)句。
死循環(huán)沒(méi)有利用價(jià)值嗎?
非常堅(jiān)定的告訴你,有!譬如,你要從某個(gè)隊(duì)列中拿到任務(wù),然后處理任務(wù),不斷有任務(wù)添加到隊(duì)列中,那么你就要不斷的拿任務(wù),處理它。
小技巧,輸入輸出重定向
輸入重定向從文件中讀取數(shù)據(jù),命令:java value< inputfile
輸出重定向?qū)⑤敵霭l(fā)送給文件,命令:java value> outputfile
結(jié)合輸出輸入重定向:java value outputfile
2do-while循環(huán)
do{// 循環(huán)體一條或多條語(yǔ)句;}while (循環(huán)繼續(xù)條件);do-while與while循環(huán)長(zhǎng)的很像,那他們有啥區(qū)別呢?
do-while循環(huán)先執(zhí)行一次循環(huán)體,然后再判斷循環(huán)繼續(xù)條件。如果循環(huán)體中的語(yǔ)句至少要執(zhí)行一次,那么使用do-while比較合適。
舉個(gè)例子:
我們發(fā)現(xiàn)do-while比while多執(zhí)行了一次。
3for循環(huán)
語(yǔ)法結(jié)構(gòu):
for (初始操作;循環(huán)繼續(xù)條件;每次迭代后的操作)// 循環(huán)體一條或多條語(yǔ)句}一般地,for循環(huán)使用一個(gè)變量來(lái)控制循環(huán)體的執(zhí)行次數(shù),稱這個(gè)變量為控制變量。控制變量必須在循環(huán)控制結(jié)構(gòu)體內(nèi)或循環(huán)前說(shuō)明
那么初始操作,循環(huán)繼續(xù)條件,每次迭代后的操作表達(dá)了什么含義呢?
這樣,初始操作即是對(duì)控制變量的初始化操作。
循環(huán)繼續(xù)條件即指每次迭代前都會(huì)判斷控制變量是否滿足指定的條件,只有滿足才繼續(xù)執(zhí)行循環(huán)體。
每次迭代后的操作即每次迭代后對(duì)控制變量的操作。
循環(huán)控制變量可以有多個(gè),用逗號(hào)分隔他們,例如:
for(int i=0,j=0;i<100&&j<1000;i++,j++){}下面來(lái)看幾個(gè)特殊的for循環(huán)。
for(int i=0,j=0;;i++,j++){...}循環(huán)繼續(xù)條件沒(méi)有給出,那么會(huì)怎樣呢?
沒(méi)有給出循環(huán)繼續(xù)條件相當(dāng)于循環(huán)繼續(xù)條件總是為true,那么這是個(gè)無(wú)限循環(huán)。
for(;;){...}初始操作,循環(huán)繼續(xù)條件,每次迭代后的操作全都沒(méi)給出,那么這也是一個(gè)無(wú)限循環(huán)。
for(;true;){...}同上例一樣效果。
int i=0,j=0;for(;i<100&&j<1000;i++,j++){...}這種寫(xiě)法也可,但不提倡,因?yàn)閕、j的作用域比將它們放到初始操作中大,肯能會(huì)不好控制。
while 循環(huán)和 for 循環(huán)都稱為前測(cè)循環(huán),do while 循環(huán)稱為后測(cè)循環(huán)。前測(cè)循環(huán)是先驗(yàn)證循環(huán)條件是否為真,為真才執(zhí)行循環(huán)體內(nèi)的語(yǔ)句。后測(cè)循環(huán)是先執(zhí)行循環(huán)體內(nèi)的語(yǔ)句,然后在測(cè)試循環(huán)條件是否為真。
4嵌套循環(huán)
嵌套循環(huán)由外層循環(huán)和內(nèi)層循環(huán)構(gòu)成,內(nèi)層循環(huán)位于外層循環(huán)循環(huán)體內(nèi)。
例:
while(循環(huán)繼續(xù)條件){......while(循環(huán)繼續(xù)條件){// 循環(huán)體一條或多條語(yǔ)句;} ......}5關(guān)鍵字break和continue
break:跳出循環(huán);
continue:結(jié)束當(dāng)前迭代,執(zhí)行下次迭代。
break和continue語(yǔ)句在每種循環(huán)中的行為是否一樣呢?
break是一致的,跳出循環(huán),執(zhí)行下一行代碼。
而continue語(yǔ)句會(huì)有區(qū)別:
在while和do-while循環(huán)中,執(zhí)行完continue語(yǔ)句之后,馬上計(jì)算循環(huán)繼續(xù)條件;而在for循環(huán)中,continue語(yǔ)句之后會(huì)立即先執(zhí)行每次迭代后的動(dòng)作,再計(jì)算循環(huán)繼續(xù)條件。
6以一個(gè)例子結(jié)束本章
數(shù)組a是無(wú)序數(shù)組,數(shù)組元素為整型,按升序排列。
算法描述為:
在未排序序列中找到最小元素,放到已排序序列末尾。不斷地重復(fù)這個(gè)過(guò)程,直到未排序序列為空。
從下面的代碼中可以看出“已排序序列”和“未排序序列”的含義。從代碼中看出沒(méi)有創(chuàng)建新的已排序序列和未排序序列,只是將已排序的元素放到原始序列的頭(采用元素位置交換的方式)。那么除去原始序列頭部的已排序序列,剩下的就是未排序序列。
假設(shè)有數(shù)組:a={5,2,9,4,8,1,13}
運(yùn)行結(jié)果為:b={1,2,4,5,8,9,13}
這一講的內(nèi)容稍微少一點(diǎn),你也可以看看以前的文章,復(fù)習(xí)一下:
愉快地學(xué)Java語(yǔ)言:第一章簡(jiǎn)介第1講
愉快地學(xué)Java語(yǔ)言:第一章簡(jiǎn)介第2講
愉快地學(xué)Java語(yǔ)言:第二章基本程序設(shè)計(jì) 第1講
愉快地學(xué)Java語(yǔ)言:第二章基本程序設(shè)計(jì) 第2講
愉快地學(xué)Java語(yǔ)言:第三章 選擇
愉快地學(xué)Java語(yǔ)言:第四章數(shù)學(xué)函數(shù)、字符和字符串
總結(jié)
以上是生活随笔為你收集整理的java for循环_愉快地学Java语言:第五章 循环的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: delphi windows编程_202
- 下一篇: datetime 取分钟_datetim