?? 第四章 流控制.htm
字號:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<!-- saved from url=(0045)http://www.sdjtu.edu.cn/xdjyzx/tech/java7.htm -->
<HTML><HEAD><TITLE>基礎教程</TITLE>
<META http-equiv=Content-Language content=zh-cn>
<META http-equiv=Content-Type content="text/html; charset=gb2312">
<META content="web designer" name=keywords>
<META content=阿捷,ajie@tspace.net name=Author><LINK href="第四章 流控制.files/css.css"
type=text/css rel=stylesheet>
<META content="MSHTML 6.00.2800.1106" name=GENERATOR></HEAD>
<BODY background=第四章 流控制.files/bg1.jpg>
<TABLE cellSpacing=0 cellPadding=0 width="100%" border=0>
<TBODY>
<TR>
<TD width="13%"></TD>
<TD vAlign=bottom width="66%">
<P align=right><A
href="http://www.sdjtu.edu.cn/xdjyzx/tech/java.htm">返回索引</A> </P></TD>
<TD width="21%">
<P align=center><FONT face="Arial Black" color=#008000 size=5>JAVA</FONT>
</P></TD></TR></TBODY></TABLE>
<HR width="80%" color=#88b838 SIZE=1>
<TABLE cellSpacing=0 cellPadding=0 width="100%" border=0>
<TBODY>
<TR>
<TD width="13%"></TD>
<TD width="77%" bgColor=#ffffff>
<P align=center><B>第四章 流控制</B></P>
<P>與<FONT face=Arial>C</FONT>、<FONT face=Arial>C++</FONT>相同,<FONT
face=Arial>Java</FONT>程序通過流控制來執行程序流,完成語句組成的。語句可以是單一的一條語句<FONT
face=Arial>(</FONT>如<FONT
face=Arial>c=a+b;)</FONT>,也可以是復合語句。<BR><BR>下面我們分別來介紹<FONT
face=Arial>Java</FONT>中的流控制語句,包括:<BR><BR><FONT
face=Arial>1.</FONT>分支語句:<FONT face=Arial>if-else</FONT>,<FONT
face=Arial>break</FONT>,<FONT face=Arial>switch</FONT>,<FONT
face=Arial>return.<BR><BR>2.</FONT>循環語句:<FONT
face=Arial>while</FONT>,<FONT face=Arial>do-while</FONT>,<FONT
face=Arial>for</FONT>,<FONT
face=Arial>continue.<BR><BR>3.</FONT>例外處理語句:<FONT
face=Arial>try-catch-finally</FONT>,<FONT
face=Arial>throw<BR><BR></FONT>最后我們簡單介紹一下注釋語句。<BR><BR><FONT face=Arial
color=#008000>§4.1</FONT><FONT
color=#008000>分支語句</FONT><BR><BR>分支語句提供了一種控制機制,使得程序的執行可以跳過這些語句不執行,而轉去執行特定的語句。<BR><BR><FONT
face=Arial color=#008000>4.1.1</FONT><FONT color=#008000>條件語句</FONT><FONT
face=Arial><FONT
color=#008000>if-else.</FONT><BR><BR>if-else</FONT>語句根據判定條件的真假來執行兩種操作中的一種,格式為:<BR><BR><FONT
face=Arial>if(boolean-expression)<BR>statement1;<BR>[else<BR>statement2;]<BR><BR>1.</FONT>布爾表達式<FONT
face=Arial>boolean-expression</FONT>是任意一個返回布爾型數據的達式<FONT
face=Arial>(</FONT>這比<FONT face=Arial>C</FONT>、<FONT
face=Arial>C++</FONT>的限制要嚴格<FONT face=Arial>)</FONT>。<BR><BR><FONT
face=Arial>2.</FONT>每個單一的語句后都必須有分號。<BR><BR><FONT
face=Arial>3.</FONT>語句<FONT face=Arial>statement1</FONT>,<FONT
face=Arial>statement2</FONT>可以為復合語句,這時要用大括號<FONT
face=Arial>{}</FONT>括起。建議對單一的語句也用大括號括起,這樣程序的可讀性強,而且有利于程序的擴充<FONT
face=Arial>(</FONT>可以在其中填加新的語句<FONT face=Arial>)</FONT>。<FONT
face=Arial>{}</FONT>外面不加分號。<BR><BR><FONT
face=Arial>4.else</FONT>子句是任選的。<BR><BR><FONT
face=Arial>5.</FONT>若布爾表達式的值為<FONT face=Arial>true</FONT>,則程序執行<FONT
face=Arial>statement1</FONT>,否則執行<FONT
face=Arial>statement2</FONT>。<BR><BR><FONT
face=Arial>6.if-else</FONT>語句的一種特殊形式為:<BR><BR><FONT
face=Arial>if(expression1){<BR>statement1<BR>}else
if(expression2){<BR>statement2<BR>}......<BR>}else
if(expressionM){<BR>statementM<BR>}else{<BR>statementN<BR>}<BR><BR>else</FONT>子句不能單獨作為語句使用,它必須和<FONT
face=Arial>if</FONT>配對使用。<FONT face=Arial>else</FONT>總是與離它最近的<FONT
face=Arial>if</FONT>配對。可以通過使用大括號<FONT
face=Arial>{}</FONT>來改變配對關系。<BR><BR><FONT
face=Arial>7.</FONT>舉例:<BR><BR>例<FONT
face=Arial>4.1</FONT>比較兩個數的大小,并按從小到大的次序輸出。<BR><BR><FONT face=Arial>public
class CompareTwo{<BR>public static void main(Stringargs[]){<BR>double
d1=23.4;<BR>double d2=35.1;<BR>if(d2</FONT>><FONT
face=Arial>=d1)<BR>System.out.println(d2+"</FONT>><FONT
face=Arial>="+d1);<BR>else<BR>System.out.println(d1+"</FONT>><FONT
face=Arial>="+d2);<BR>} }<BR><BR></FONT>運行結果為:<BR><BR><FONT
face=Arial>C:\</FONT>><FONT face=Arial>java
CompareTwo<BR>35.1</FONT>><FONT face=Arial>=23.4<BR><BR></FONT>例<FONT
face=Arial>4.2</FONT>判斷某一年是否為閏年。<BR><BR>閏年的條件是符合下面二者之一:<FONT
face=Arial>①</FONT>能被<FONT face=Arial>4</FONT>整除,但不能被<FONT
face=Arial>100</FONT>整除<FONT face=Arial>;②</FONT>能被<FONT
face=Arial>4</FONT>整除,又能被<FONT face=Arial>100</FONT>整除。<BR><BR><FONT
face=Arial>public class LeapYear{<BR>public static void main(String
args[]){<BR>int
year=1989;//method1<BR>if((year%4==0&&year%100!=0)||(year%400==0))<BR>System.out.println(year+"isaleapyear.");<BR>else<BR>System.out.println(year+"isnotaleapyear.");<BR>year=2000;//method2<BR>boolean
leap;<BR>if(year%4!=0)<BR>leap=false;<BR>else
if(year%100!=0)<BR>leap=true;<BR>else
if(year%400!=0)<BR>leap=false;<BR>else<BR>leap=true;<BR>if(leap==true)<BR>System.out.println(year+"isaleapyear.");<BR>else<BR>System.out.println(year+"isnotaleapyear.");<BR>year=2050;//method3<BR>if(year%4==0){<BR>if(year%100==0){<BR>if(year%400==0)<BR>leap=true;<BR>else<BR>leap=false;<BR>}else<BR>leap=false;<BR>}else<BR>leap=false;<BR>if(leap==true)<BR>System.out.println(year+"
is a leap year.");<BR>else<BR>System.out.println(year+" is not a leap
year.");<BR>}<BR>}<BR><BR></FONT>運行結果為<BR><BR><FONT
face=Arial>C:\</FONT>><FONT face=Arial>java LeapYear<BR><BR>1989 is not a
leap year.<BR>2000 is a leap year.<BR>2050 is not a leap
year.<BR><BR></FONT>該例中,方法<FONT
face=Arial>1</FONT>用一個邏輯表達式包含了所有的閏年條件,方法<FONT face=Arial>2</FONT>使用了<FONT
face=Arial>if-else</FONT>語句的特殊形式,方法<FONT face=Arial>3</FONT>則通過使用大括號<FONT
face=Arial>{}</FONT>對<FONT
face=Arial>if-else</FONT>進行匹配來實現閏年的判斷。大家可以根據程序來對比這三種方法,體會其中的聯系和區別,在不同的場合選用適當的方法。<BR><BR><FONT
face=Arial color=#008000>4.1.2</FONT><FONT color=#008000>多分支語句</FONT><FONT
face=Arial><FONT
color=#008000>switch</FONT><BR><BR>switch</FONT>語句根據表達式的值來執行多個操作中的一個,它的般格式如下:<BR><BR><FONT
face=Arial>switch (expression){<BR>case
value1:statement1;<BR>break;<BR>case
value2:statement2;<BR>break;<BR>…………<BR>case
valueN:statemendN;<BR>break;<BR>[default:defaultStatement;]<BR>}<BR><BR>1.</FONT>表達式<FONT
face=Arial>expression</FONT>可以返回任一簡單類型的值<FONT
face=Arial>(</FONT>如整型、實型、字符型<FONT
face=Arial>)</FONT>,多分支語句把表達式返回的值與每個<FONT
face=Arial>case</FONT>子句中的值相比。如果匹配成功,則執行該<FONT
face=Arial>case</FONT>子句后的語句序列。<BR><BR><FONT
face=Arial>2.case</FONT>子句中的值<FONT face=Arial>valueI</FONT>必須是常量,而且所有<FONT
face=Arial>case</FONT>子句中的值是不同的。<BR><BR><FONT
face=Arial>3.default</FONT>子句是任選的。當表達式的值與任一<FONT
face=Arial>case</FONT>子句中的<FONT face=Arial>?</FONT>都不匹配時,程序執行<FONT
face=Arial>default</FONT>后面的語句。如果表達式的值與任一<FONT
face=Arial>case</FONT>子句中的值都不<FONT face=Arial>?</FONT>配且沒有<FONT
face=Arial>default</FONT>子句,則程序不作任何操作,而是直接跳出<FONT
face=Arial>switch</FONT>語句。<BR><BR><FONT
face=Arial>4.break</FONT>語句用來在執行完一個<FONT
face=Arial>case</FONT>分支后,使程序跳出<FONT face=Arial>switch</FONT>語句,即終止<FONT
face=Arial>switch</FONT>語句的執行。因為<FONT
face=Arial>case</FONT>子句只是起到一個標號的作用,用來查找匹配的入口并從此處開始執行,對后面的<FONT
face=Arial>case</FONT>子句不再進行匹配,而是直接執行其后的語句序列,因此該在每個<FONT
face=Arial>case</FONT>分支后,要用<FONT face=Arial>break</FONT>來終止后面的<FONT
face=Arial>case</FONT>分支語句的執行。在一些特殊情況下,多個不同的<FONT
face=Arial>case</FONT>值要執行一組相同的操,這時可以不用<FONT
face=Arial>break</FONT>。<BR><BR><FONT
face=Arial>5.case</FONT>分支中包括多個執行語句時,可以不用大括號<FONT
face=Arial>{}</FONT>括起。<BR><BR><FONT
face=Arial>6.switch</FONT>語句的功能可以用<FONT
face=Arial>if-else</FONT>來實現,但在某些情況下,使<FONT
face=Arial>switch</FONT>語句更簡煉,可讀性強,而且程序的執行效率提高。<BR><BR><FONT
face=Arial>7.</FONT>舉例:<BR><BR>例<FONT
face=Arial>4.3.</FONT>根據考試成績的等級打印出百分制分數段。<BR><BR><FONT face=Arial>public
class GradeLevel{<BR>public static void main(String
args[]){<BR>System.out.println("\n**firstsituation**");<BR>char
grade='C';//normaluse<BR>switch(grade){<BR>case
'A':System.out.println(grade+" is 85</FONT>~<FONT
face=Arial>100");<BR>break; case 'B':System.out.println(grade+" is
70</FONT>~<FONT face=Arial>84");<BR>break; case
'C':System.out.println(grade+" is 60</FONT>~<FONT
face=Arial>69");<BR>break; case 'D':System.out.println(grade+" is
</FONT><<FONT face=Arial>60");<BR>break; default:System.out.println("input
error");<BR>}
System.out.println("\n**secondsituation**");<BR>grade='A';∥creat error
without break statement<BR>switch(grade){<BR>case
'A':System.out.println(grade+"is85</FONT>~<FONT face=Arial>100");<BR>case
'B':System.out.println(grade+"is70</FONT>~<FONT face=Arial>84");<BR>case
'C':System.out.println(grade+"is60</FONT>~<FONT face=Arial>69");<BR>case
'D':System.out.println(grade+"is</FONT><<FONT
face=Arial>60");<BR>default:System.out.println("inputerror");<BR>}
System.out.println("\n**thirdsituation**");<BR>grade='B';∥severalcasewithsameoperation<BR>switch(grade){<BR>case
'A':<BR>case 'B':<BR>case 'C':System.out.println(grade+"is</FONT>><FONT
face=Arial>=60");<BR>break; case
'D':System.out.println(grade+"is</FONT><<FONT face=Arial>60");<BR>break;
default:System.out.println("inputerror");<BR>}<BR>}<BR>}<BR><BR></FONT>運行結果為<BR><BR><FONT
face=Arial>C:\</FONT>><FONT face=Arial>java GradeLevel<BR><BR>****first
situation****<BR>C is 60</FONT>~<FONT face=Arial>69<BR>****second
situation****<BR>A is 85</FONT>~<FONT face=Arial>100<BR>A is
70</FONT>~<FONT face=Arial>84<BR>A is 60</FONT>~<FONT face=Arial>69<BR>A
is </FONT><<FONT face=Arial>60<BR>input error<BR>****third
situation****<BR>B is </FONT>><FONT
face=Arial>=60<BR><BR></FONT>從該例中我們可以看到<FONT
face=Arial>break</FONT>語句的作用。</P>
<P>(未完,請繼續) </P></TD>
<TD width="10%"></TD></TR></TBODY></TABLE>
<TABLE cellSpacing=0 cellPadding=0 width="100%" border=0>
<TBODY>
<TR>
<TD width="13%"></TD>
<TD width="77%">
<P align=center></P></TD>
<TD width="10%"></TD></TR></TBODY></TABLE>
<HR width="80%" color=#88b838 SIZE=1>
<TABLE cellSpacing=0 cellPadding=0 width="100%" border=0>
<TBODY>
<TR>
<TD width="100%">
<P align=center><A
href="http://www.sdjtu.edu.cn/xdjyzx/tech/java6.htm">上一頁</A> <A
href="http://www.sdjtu.edu.cn/xdjyzx/tech/java8.htm">下一頁</A> <A
href="http://www.sdjtu.edu.cn/xdjyzx/tech/java7.htm#top"><FONT
face=Arial>GO TOP</FONT></A> </P></TD></TR>
<TR>
<TD width="100%">
<SCRIPT src="第四章 流控制.files/nease.js"></SCRIPT>
</TD></TR>
<TR>
<TD width="100%">
<P align=center><FONT face=Arial>Copyright © 1999 designed by <A
href="http://page.tspace.net/">web designer</A></FONT><A
onmouseover="window.status='返回網頁設計師首頁';return true"
href="http://www.sdjtu.edu.cn/xdjyzx/index1.htm"><FONT
style="FONT-SIZE: 9pt"><IMG height=20 src="第四章 流控制.files/home.gif"
width=20 border=0></FONT></A></P></TD></TR></TBODY></TABLE></BODY></HTML>
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -