📄 0101.htm
字号:
<html>
<head>
<title>新时代软件教程:操作系统 主页制作 服务器 设计软件 网络技术 编程语言 文字编辑</title>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<style>
<!--
body, table {font-size: 9pt; font-family: 宋体}
a {text-decoration:none}
a:hover {color: red;text-decoration:underline}
.1 {background-color: rgb(245,245,245)}
-->
</style>
</head>
<p align="center"><script src="../../1.js"></script></a>
<p align="center"><big><strong>第四章 流控制</strong></big></p>
<p>与C</font>、C++</font>相同,Java</font>程序通过流控制来执行程序流,完成语句组成的。语句可以是单一的一条语句(</font>如c=a+b;)</font>,也可以是复合语句。<br>
<br>
下面我们分别来介绍Java</font>中的流控制语句,包括:<br>
<br>
1.</font>分支语句:if-else</font>,break</font>,switch</font>,return.<br>
<br>
2.</font>循环语句:while</font>,do-while</font>,for</font>,continue.<br>
<br>
3.</font>例外处理语句:try-catch-finally</font>,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 color="#008000">if-else.</font><br>
<br>
if-else</font>语句根据判定条件的真假来执行两种操作中的一种,格式为:<br>
<br>
if(boolean-expression)<br>
statement1;<br>
[else<br>
statement2;]<br>
<br>
1.</font>布尔表达式boolean-expression</font>是任意一个返回布尔型数据的达式(</font>这比C</font>、C++</font>的限制要严格)</font>。<br>
<br>
2.</font>每个单一的语句后都必须有分号。<br>
<br>
3.</font>语句statement1</font>,statement2</font>可以为复合语句,这时要用大括号{}</font>括起。建议对单一的语句也用大括号括起,这样程序的可读性强,而且有利于程序的扩充(</font>可以在其中填加新的语句)</font>。{}</font>外面不加分号。<br>
<br>
4.else</font>子句是任选的。<br>
<br>
5.</font>若布尔表达式的值为true</font>,则程序执行statement1</font>,否则执行statement2</font>。<br>
<br>
6.if-else</font>语句的一种特殊形式为:<br>
<br>
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>子句不能单独作为语句使用,它必须和if</font>配对使用。else</font>总是与离它最近的if</font>配对。可以通过使用大括号{}</font>来改变配对关系。<br>
<br>
7.</font>举例:<br>
<br>
例4.1</font>比较两个数的大小,并按从小到大的次序输出。<br>
<br>
public class CompareTwo{<br>
public static void main(Stringargs[]){<br>
double d1=23.4;<br>
double d2=35.1;<br>
if(d2</font>>=d1)<br>
System.out.println(d2+"</font>>="+d1);<br>
else<br>
System.out.println(d1+"</font>>="+d2);<br>
} }<br>
<br>
</font>
运行结果为:<br>
<br>
C:\</font>>java CompareTwo<br>
35.1</font>>=23.4<br>
<br>
</font>
例4.2</font>判断某一年是否为闰年。<br>
<br>
闰年的条件是符合下面二者之一:①</font>能被4</font>整除,但不能被100</font>整除;②</font>能被4</font>整除,又能被100</font>整除。<br>
<br>
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>
C:\</font>>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>
该例中,方法1</font>用一个逻辑表达式包含了所有的闰年条件,方法2</font>使用了if-else</font>语句的特殊形式,方法3</font>则通过使用大括号{}</font>对if-else</font>进行匹配来实现闰年的判断。大家可以根据程序来对比这三种方法,体会其中的联系和区别,在不同的场合选用适当的方法。<br>
<br>
<font face="Arial" color="#008000">4.1.2</font><font color="#008000">多分支语句</font><font color="#008000">switch</font><br>
<br>
switch</font>语句根据表达式的值来执行多个操作中的一个,它的般格式如下:<br>
<br>
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>表达式expression</font>可以返回任一简单类型的值(</font>如整型、实型、字符型)</font>,多分支语句把表达式返回的值与每个case</font>子句中的值相比。如果匹配成功,则执行该case</font>子句后的语句序列。<br>
<br>
2.case</font>子句中的值valueI</font>必须是常量,而且所有case</font>子句中的值是不同的。<br>
<br>
3.default</font>子句是任选的。当表达式的值与任一case</font>子句中的?</font>都不匹配时,程序执行default</font>后面的语句。如果表达式的值与任一case</font>子句中的值都不?</font>配且没有default</font>子句,则程序不作任何操作,而是直接跳出switch</font>语句。<br>
<br>
4.break</font>语句用来在执行完一个case</font>分支后,使程序跳出switch</font>语句,即终止switch</font>语句的执行。因为case</font>子句只是起到一个标号的作用,用来查找匹配的入口并从此处开始执行,对后面的case</font>子句不再进行匹配,而是直接执行其后的语句序列,因此该在每个case</font>分支后,要用break</font>来终止后面的case</font>分支语句的执行。在一些特殊情况下,多个不同的case</font>值要执行一组相同的操,这时可以不用break</font>。<br>
<br>
5.case</font>分支中包括多个执行语句时,可以不用大括号{}</font>括起。<br>
<br>
6.switch</font>语句的功能可以用if-else</font>来实现,但在某些情况下,使switch</font>语句更简炼,可读性强,而且程序的执行效率提高。<br>
<br>
7.</font>举例:<br>
<br>
例4.3.</font>根据考试成绩的等级打印出百分制分数段。<br>
<br>
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>~100");<br>
break; case 'B':System.out.println(grade+" is 70</font>~84");<br>
break; case 'C':System.out.println(grade+" is 60</font>~69");<br>
break; case 'D':System.out.println(grade+" is </font> <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>~100");<br>
case 'B':System.out.println(grade+"is70</font>~84");<br>
case 'C':System.out.println(grade+"is60</font>~69");<br>
case 'D':System.out.println(grade+"is</font><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>>=60");<br>
break; case 'D':System.out.println(grade+"is</font><60");<br>
break; default:System.out.println("inputerror");<br>
}<br>
}<br>
}<br>
<br>
</font>
运行结果为<br>
<br>
C:\</font>>java GradeLevel<br>
<br>
****first situation****<br>
C is 60</font>~69<br>
****second situation****<br>
A is 85</font>~100<br>
A is 70</font>~84<br>
A is 60</font>~69<br>
A is </font> <60<br>
input error<br>
****third situation****<br>
B is </font> >=60<br>
<br>
</font>
从该例中我们可以看到break</font>语句的作用。</p>
<p>(未完,请继续)
</table>
<p align="center"><script src="../../2.js"></script></a>
</body>
</html>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -