?? java入門(7).htm
字號:
</CODE></PRE></TD></TR></TBODY></TABLE>
<P> 這是因為,if(myScore>=90)這個語句如果是真的話,應該執行兩個語句,而如果不使用“{}”將它們圍起來,則第2個語句就不屬于if(myScore>=90)了。這樣,程序就不管在什么情況下都會執行這一句。</P>
<P> 3)這個程序有多種寫法,下面列出了其中的一種:</P>
<TABLE cellSpacing=0 cellPadding=5 width="100%"
bgColor=#cccccc border=1>
<TBODY>
<TR>
<TD><PRE><CODE>
if (myScore >= 90)
System.out.println(“better”);
if ((myScore >= 80)&&(myScore<90)
System.out.println(“good”);
if ((myScore >= 60)&&(myScore<80)
{
System.out.println(“middle”);
}
else
{
System.out.println(“bad”);
}
</CODE></PRE></TD></TR></TBODY></TABLE>
<P><B> 7.2 循環結構</B></P>
<P><B> 7.2.1 while循環</B></P>
<P><B> 實例說明</B></P>
<P> 1.首先,我們使用文字編輯軟件輸入下源程序。</P>
<P> 源程序:testLoop1.java</P>
<TABLE cellSpacing=0 cellPadding=5 width="100%"
bgColor=#cccccc border=1>
<TBODY>
<TR>
<TD><PRE><CODE>
public class testLoop1
{
public static void main(String args[])
{
int counterLoop=8;
while (counterLoop > 0)
{
System.out.println(counterLoop);
CounterLoop - = 1;
}
}
}
</CODE></PRE></TD></TR></TBODY></TABLE>
<P> 2.使用javac編譯這個程序,并運行這個程序。我們將得到如下的輸出結果:</P><A
href="Java入門(7).files/7-5.jpg"><IMG alt=7-5
src="Java入門(7).files/7-5.jpg" width=450 border=0></A>
<P><B> 圖7-5 程序testLoop1.java的輸出</B></P>
<P><B> 傳授新知</B></P>
<P> 按慣例,我們先試著閱讀一下程序:</P>
<P> 1)</P>
<TABLE cellSpacing=0 cellPadding=5 width="100%"
bgColor=#cccccc border=1>
<TBODY>
<TR>
<TD><PRE><CODE>
int counterLoop=8;
int counterLoop=8:
</CODE></PRE></TD></TR></TBODY></TABLE>
<P> 定義一個變量,名為counterLoop(應該代表“循環的次數”),值為8。</P>
<P> 2) </P>
<TABLE cellSpacing=0 cellPadding=5 width="100%"
bgColor=#cccccc border=1>
<TBODY>
<TR>
<TD><PRE><CODE>
while (counterLoop > 0)
{
System.out.println(counterLoop);
counterLoop - = 1;
}
</CODE></PRE></TD></TR></TBODY></TABLE>
<P> 在這里,我們遇到了一個前面沒有遇到過的語句:while,我們就試著分析一下:</P>
<P> while這個英語單詞表示的意思是“當…時候”,在這里,應該就是表示“當counterLoop大于0的時候”。當它大于0時,怎么樣呢?我們發現在while語句后跟著用“{}”圍起來的語句。對,就是說當counterLoop大于0時,就執行后面用“{}”圍起來的語句。</P>
<P> 那么我們再看一下“{}”圍起來的語句完成了什么工作:</P>
<P> 1) 首先將counterLoop的值輸出到屏幕上;</P>
<P> 2) 然后將counterLoop的值減去1。</P>
<P><B> 一些提示:</B></P>
<P> 想想為什么要將counterLoop的值減去1呢?其實很簡單,如果沒有在循環中修改counterLoop的值,那么表達式“counterLoop>0”的值就將永遠為真,循環也就不會結束。</P>
<P><B> 下圖形象深刻地說明了while循環的執行流程:</B></P><A
href="Java入門(7).files/7-6.jpg"><IMG alt=7-6
src="Java入門(7).files/7-6.jpg" width=450 border=0></A>
<P><B> 圖7-6 while循環控制流程示意圖</B></P>
<P> 1) 首先判斷while語句中的邏輯表達式(這個邏輯表達式的值是boolean型);</P>
<P> 2) 如果是false,則不執行用“{}”圍起來的循環體,直接執行后面的程序;</P>
<P> 3) 如果是true,則執行用“{}”圍起來的循環體語句,然后再回到第一步。</P>
<P> while語句是Java語言中提供的一種循環結構的流程控制語句。它的語法格式為:</P>
<TABLE cellSpacing=0 cellPadding=5 width="100%"
bgColor=#cccccc border=1>
<TBODY>
<TR>
<TD><PRE><CODE>
while (邏輯表達式)
{
語句1;
語句2;
……
}
</CODE></PRE></TD></TR></TBODY></TABLE>
<P><B> 7.2.2 for循環</B></P>
<P><B> 實例說明</B></P>
<P> 1.與前面的例子一樣,我們首先使用文字編輯軟件輸入下源程序。</P>
<P> 源程序:testLoop2.java</P>
<TABLE cellSpacing=0 cellPadding=5 width="100%"
bgColor=#cccccc border=1>
<TBODY>
<TR>
<TD><PRE><CODE>
public class testLoop2
{
public static void main(String args[])
{
for (int counterLoop=8;counterLoop > 0;counterLoop--)
{
System.out.println(counterLoop);
}
}
}
</CODE></PRE></TD></TR></TBODY></TABLE>
<P> 2.使用javac編譯這個程序,并運行這個程序。我們將得到如下的輸出結果:</P><A
href="Java入門(7).files/7-7.jpg"><IMG alt=7-7
src="Java入門(7).files/7-7.jpg" width=450 border=0></A>
<P><B> 圖7-7 程序testLoop2.java的輸出</B></P>
<P><B> 傳授新知</B></P>
<P> 我們發現這個程序與上一個程序的輸出完全相同。其實,這個程序就是使用另一個循環語句來實現相同功能的程序。</P>
<P> 現在,我們來看一下這個程序中主體部分:</P>
<TABLE cellSpacing=0 cellPadding=5 width="100%"
bgColor=#cccccc border=1>
<TBODY>
<TR>
<TD><PRE><CODE>
for (int counterLoop=8;counterLoop > 0;counterLoop--)
{
System.out.println(counterLoop);
}
</CODE></PRE></TD></TR></TBODY></TABLE>
<P> for,為了?因為?至于?我們一直現用的通過英文單詞的中文含義來理解程序的方法在這里不那么管用了!</P>
<P><B> 一些提示:</B></P>
<P> 其實還是有一個近似的解釋,那就是“適合于”,也就是說,滿足了括號里面給出的條件。</P>
<P> 而for后面括弧內的內容則更是令人費解。因此我們還是參閱相關手冊,再理解它吧:</P>
<P> for語句是Java語言中提供的另一種循環語句,它的語法結構如下:</P>
<TABLE cellSpacing=0 cellPadding=5 width="100%"
bgColor=#cccccc border=1>
<TBODY>
<TR>
<TD><PRE><CODE>
for (循環初始值;循環結束條件表達式;修改表達式)
{
循環體語句;
……
}
</CODE></PRE></TD></TR></TBODY></TABLE>
<P> 也就是說,for語句中將循環變量初始的定義、循環變量的修改,以及循環結束條件都收集在一起,放在一塊了。按慣例,我們還是對它進行圖解:</P><A
href="Java入門(7).files/7-8.jpg"><IMG alt=7-8
src="Java入門(7).files/7-8.jpg" width=450 border=0></A>
<P><B> 圖7-8 for循環語句控制流程示意圖</B></P>
<P> 結合這個控制流程,我們一起來分析一下這個程序過程:</P>
<P> 1) 首先,定義了一個名為counterLoop的整型變量,值為0;</P>
<P> 2) 然后檢查counterLoop的值是否大于0(循環結束條件)?</P>
<P> 3) 如果為false,則跳出循環,接著執行后面的程序(在本程序中,后面沒有程序段,因此就退出了程序);</P>
<P> 4) 如果為true,則執行循環體(在本程序中為打印出counterLoop的值);</P>
<P> 5)
執行完循環體后,執行修改表達式,修改循環變量counterLoop的值,再轉到第二步,檢查counterLoop的值是否大于0。</P>
<P><B> 自測練習</B></P>
<P> 1) 以下不是循環語句的是_____________。</P>
<P> a. while b.if c.for</P>
<P> 2) 在有循環結構的程序中,應該注意:___________。</P>
<P> a.循環體中的程序不應太長 b.避免條件表達式永遠為真值</P>
<P> c.能夠使用while循環,盡量使用while循環。</P>
<P> 閱讀以下代碼,回答問題3)、4)、5):</P>
<TABLE cellSpacing=0 cellPadding=5 width="100%"
bgColor=#cccccc border=1>
<TBODY>
<TR>
<TD><PRE><CODE>
int x=250;
int y=0;
while (x>0)
{
y++;
x-=5;
}
</CODE></PRE></TD></TR></TBODY></TABLE>
<P> 3) 完成了這個循環語句后,y的值將變成:_________。</P>
<P> a.0 b.250 c.50 d.51</P>
<P> 4) 完成了這個循環語句后,x的值將變成:_________。</P>
<P> a.0 b.250 c.50 d.51</P>
<P> 5) 在這個循環中,循環體內的語句共執行了________次,循環判斷了_____次。</P>
<P> a.0 b.250 c.50 d.51</P>
<P> 閱讀以下代碼,回答問題6)、7):</P>
<TABLE cellSpacing=0 cellPadding=5 width="100%"
bgColor=#cccccc border=1>
<TBODY>
<TR>
<TD><PRE><CODE>
for (int x=10;x>0;x--)
{
System.out.println(i);
}
</CODE></PRE></TD></TR></TBODY></TABLE>
<P> 6)在這段代碼中,每一次循環時,首先執行___________語句。</P>
<P> a.int x=10 b. x>0 c.x-- d.System.out.println(i)</P>
<P> 7)那么每一次循環中最后執行的是______________語句。</P>
<P> a.int x=10 b. x>0 c.x-- d.System.out.println(i)</P>
<P> 8)如果將testLoop1.java程序中的“counterLoop-=1;”這一行程序改為:</P>
<TABLE cellSpacing=0 cellPadding=5 width="100%"
bgColor=#cccccc border=1>
<TBODY>
<TR>
<TD><PRE><CODE>
CounterLoop+=1;
</CODE></PRE></TD></TR></TBODY></TABLE>
<P> 那么這個程序將產生什么輸出呢?</P>
<P> ______________________________________________________________________</P>
<P> ______________________________________________________________________</P>
<P> ______________________________________________________________________</P>
<P> 9)現有一個如下的數組:</P>
<TABLE cellSpacing=0 cellPadding=5 width="100%"
bgColor=#cccccc border=1>
<TBODY>
<TR>
<TD><PRE><CODE>
String weeks[ ] = {“Monday”,”Tuesday”,”Wednesday”,
”Thursday”,”Friday”,”Saturday”,”Sunday”};
</CODE></PRE></TD></TR></TBODY></TABLE>
<P> 請分別使用while循環和for循環,寫一個程序將它們的值打印到屏幕上。</P>
<P> a.使用While語句:</P>
<P> ______________________________________________________________________</P>
<P> ______________________________________________________________________</P>
<P> ______________________________________________________________________</P>
<P> ______________________________________________________________________</P>
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -