1、While迴圈 2、do ... While迴圈 3、For迴圈 一、While /*while迴圈 語句格式: while(boolean表達式){ 語句塊; } 執行順序: 先判斷boolean表達式的值,如果是true。就執行語句塊。 再判斷boolean表達式的值,如果是true。就執行 ...
i1、While迴圈
2、do ... While迴圈
3、For迴圈
一、While
/*
while迴圈
語句格式:
while(boolean表達式){
語句塊;
}
執行順序:
先判斷boolean表達式的值,如果是true。就執行語句塊。
再判斷boolean表達式的值,如果是true。就執行語句塊。
再判斷boolean表達式的值,如果是true。就執行語句塊。
……
直到boolean表達式為false的時候,就結束了。
*/
練習題系列:
列印五次Hello World
列印輸出1~10
求1~10的階乘
求100以內偶數的和
二、do ... While
/*
do-while的格式:
do{
語句塊;
}while(boolean表達式);
執行順序:
執行語句塊,然後判斷boolean表達式,如果為true。
繼續執行語句塊,然後判斷boolean表達式,如果為true。
繼續執行語句塊,然後判斷boolean表達式,如果為true。
……
繼續執行語句塊,然後判斷boolean表達式,如果為false。停止。
*/
練習題:
用do-while列印三次helloworld
用do...while列印100以內所有的奇數
列印100以內能被3整除,但是不能被5整除的數
//總結:
//while和do-while的區別:
//while先執行條件,然後執行迴圈體
//do-while先執行迴圈體,後判斷條件。
//當第一次就不滿足迴圈條件的情況下,while一次都不能執行,而do-while會執行一次。
三、For迴圈
/*
for迴圈
格式:
for(迴圈變數初始值設定;迴圈條件boolean值;每次迴圈之後執行的語句){
迴圈體;
}
執行過程:
首先計算初始值設定。
然後計算boolean值,如果為true,就執行迴圈體一次,然後執行“每次迴圈之後執行的語句”。
然後計算boolean值,如果為true,就執行迴圈體一次,然後執行“每次迴圈之後執行的語句”。
然後計算boolean值,如果為true,就執行迴圈體一次,然後執行“每次迴圈之後執行的語句”。
……
然後計算boolean值,如果為false,就停下來了。
*/
練習題:
列印三個Hello World:
重重瞅瞅這個題的思路
首先列印出符合條件的內容,然後加入count計數,滿6就換行:下麵時複雜方法
接著提高效率:
一個*****題:
答案:
首先記得i++一定是正數嗎?
這裡用到了 >>>:無符號右移:無論最高位是0還是1,左邊都補齊0.裡面的思考
i++算到最後為
01111111 11111111 11111111 11111111 為正數,補碼和源碼一樣
如果再加一得:
11111111 11111111 11111111 11111111 為負數
說真的這個題真沒意思!!!我來驗證一下:
首先由上面的正數加一可以變成負數可得:2147483647+1=-2147483648
由此可知:2147483647+k+1=-(2147483648-k)
所以題目中是i++,計算的是3*i;也就是負數中最大三倍的(2147483648-k)。
然後再一個一個的加一;
直到:如下:
即:三倍的-1431655763,int強制轉換是等於7的!!!!!!!!
四、For For迴圈,即嵌套迴圈
首先用 * 輸入一個矩陣:
然後輸入由 * 組成的三角形:
99乘法表:
重點來,列印菱形:
這個需要加點數學知識,如圖:
這裡以4為例:
要列印菱形,就是從上一個題目中,列印矩形星星中切除一部分星星。而如何切除呢?
就是從上圖坐標中範圍取值切除,每個星星都會對應一個橫豎坐標值,即X、Y;也就是X、Y的不同取值範圍中是顯示空格還是顯示星星的問題。
由上面分析可以得到for迴圈中的條件語句,代碼就可以敲了。
這個是邊長為4的菱形,輸出“*”(星星)還是輸出“ ”(空格)根據範圍的變化而變化。
上面那個邏輯性不好,不算列印正確,下麵才是真正的摳圖。
其實都可以。
空心菱形:
break 和continue
標簽:任意定義一個標識符在一個for迴圈前【loop:for(){}】,在break等後面加上標簽【break loop;】,即表示指定這個位置的for迴圈break.
For迴圈練習題:
//練習一:最大公約數與最小公倍數。
首先求最大公約數有兩種方法:
1、更相減損術:
以8和10 為例:大的減小的,直到兩數相等
eg:10-8=2 8-2=6 6-2=4 4-2=2 2==2 於是最大公約數就是2.
最小公倍數就是兩書相乘後除以最大公約數。
a,b,c,d;初始這三個數,a,b代表要計算的,c代表中間轉換需求值,d最重要,一開始就要用d表示出兩數的乘積!!!!迴圈後a,b都會發生變化,如下程式:
2、輾轉相除法
實例:以8 和 10 為例:
10 / 8 = 1 .....2 8 / 2 = 4 .......0 前面中得到0的那一次,除數就是最大公約數。
//練習二:水仙花數
//練習三:百錢百雞問題
優化: