📄 java02_09.htm
字号:
1.return expression <br>
返回一个值给调用该方法的语句,返回值的数据类型必须与方法声明中的返回值类型一致。可以使用强制类型转换来使类型一致。 <br>
2.return <br>
当方法说明中用void声明返回类型为空时,应使用这种格式,
不返回任何值。 <br>
return 语句通常用在一个方法体的最后,以退出该方法并返一个值。Java中,单独的return语句用在一个方法体的中间时,会产生编译错误,因为这时有一些语句执行不到。但可以通过把return语句嵌入某些语句(如if-else)来使程序在未执行完方法中的所有语句时退出,例如: <br>
int method (int num) { <br>
∥ return num; ∥will cause compile time error <br>
if (num>0) <br>
return num; <br>
…… ∥may or may not be executed <br>
}
<br>
</p>
<p><b>课堂练习<br>
</b>给定一个0-100内的分数(假定是整数),按照下列标准评定其等级并输出:0-59为不及格,60-69为及格,70-89为良好,90-100为优秀。
<br>
</p>
<p><b>二、循环语句</b> <br>
<br>
循环语句的作用是反复执行一段代码,直到满足终止循环的条件为止,一个循环一般应包括四部分内容: <br>
1.初始化部分(initialization):用来设置循环的一些初始条件。 <br>
2.循环体部分(body):这是反复循环的一段代码,可以是单一的一条语句,也可以是复合语句。 <br>
3.迭代部分(iteration):这是在当前循环结束,下一次循环开始执行的语句,常常用来使计数器加1或减1。 <br>
4.终止部分(termination):通常是一个布尔表达式,每一次循环要对该表达式求值,以验证是否满足循环终止条件。 <br>
<br>
Java中提供的循环语句有:while语句,do-while语句和for语句,下面分别介绍。 <br>
<br>
1.while语句 <br>
while语句实现"当型"循环,它的一般格式为:
</p>
<table border="0" width="72%" height="65">
<tr>
<td width="50%" height="59">
[initialization] <br>
while (termination)<br>
{ <br>
[
body; ] <br>
[iteration;]<br>
} <br>
</td>
<td width="50%" height="59"><img border="0" src="picture/java02_09_01.gif" width="174" height="194"></td>
</tr>
</table>
<p>
(1)当布尔表达式(termination)的值为true时,循环执行大括号中语句。并且初始化部分和<br>
迭代部分是任选的。 <br>
(2)while语句首先计算终止条件,当条件满足时,才去执行循环体中的语句。这是"当型"循<br>
环的特点。 <br>
<br>
2. do-while语句 <br>
do-while 语句实现"直到型"循环,它的一般格式为:
</p>
<table border="0" width="80%">
<tr>
<td width="50%">
[initialization] <br>
do { <br>
[body; ]<br>
[iteration;] <br>
} while (termination); </td>
<td width="50%"><img border="0" src="picture/java02_09_02.gif" width="136" height="163"></td>
</tr>
</table>
<p>
(1)do-while语句首先执行循环体,然后计算终止条件,若结果为true,则循环执行大括号中的语句,直到布尔表达式的结果为false。 <br>
(2)与while语句不同的是,do-while语句的循环体至少执行一次, 是"直到型"循环的特点。 <br>
<br>
3. for语句 <br>
for语句也用来实现"当型"循环,它的一般格式为: <br>
</p>
<table border="0" width="556">
<tr>
<td width="355">
for (initialization; termination; iteration)<br>
{ <br>
[body; ]<br>
} </td>
<td width="187"><img border="0" src="picture/java02_09_03.gif" width="170" height="235"></td>
</tr>
</table>
<p>
(1)for语句执行时,首先执行初始化操作,然后判断终止条件否满足,如果满足,则执行循<br>
环体中的语句,最后执行迭代部分。完成一次循环后,重新判断终止条件。 <br>
(2)可以在for语句的初始化部分声明一个变量,它的作用域为整个for语句。 <br>
(3)for语句通常用来执行循环次数确定的情况(如对数组元素进行操作),也可以根据循环<br>
结束条件执行循环次数不确定的情况。 <br>
(4)在初始化部分和迭代部分可以使用逗号语句,来进行多个操作。逗号语句是用逗号分隔的语句序列。例如: <br>
for( i=0, j=10; i<j; i++, j--){ <br>
……;<br>
} <br>
(5)初始化、终止以及迭代部分都可以为空语句(但分号不能省),三者均为空的时候,相当于一个无限循环。 <br>
<br>
4. continue语句 <br>
(1)continue语句用来结束本次循环,跳过循环体中下面尚未执的语句,接着进行终止条件的判断,以决定是否继续循环。对于for语句,在进行终止条件的判断前,还要先执行迭代语句。它的格式为: <br>
continue; <br>
(2)也可以用continue跳转到括号指明的外层循环中,这时的格式为 :<br>
continue outerLable; <br>
例如: <br>
outer: for( int i=0; i<10; i++ ) ∥外层循环 <br>
{ for( int j=0; j<20; j++ ) ∥内层循环<br>
{ if( j>i ) <br>
{ ……;<br>
continue outer; <br>
} <br>
……<br>
} <br>
……<br>
} <br>
该例中,当满足j>i的条件时,程序执行完相应的语句后跳转到外层循环,执行外层循环的迭代语句i++;然后开始下一次循环。 <br>
<br>
例2.7 下例分别用while、do-while和for语句实现累计求和。 <br>
public class Sum{ <br>
public static void main( String args[] )<br>
{ System.out.println("\n** while statement **"); <br>
int n=10,sum=0; ∥initialization <br>
while( n>0 ) ∥termination <br>
{ sum+=n; ∥body <br>
n--; ∥iteration <br>
} <br>
System.out.println("sum is "+sum); <br>
System.out.println("\n** do_while statement **"); <br>
n=0; ∥initialization <br>
sum=0; <br>
do{ <br>
sum+=n; ∥body <br>
n++; ∥iteration <br>
}while( n<=10 ); ∥termination <br>
System.out.println("sum is "+sum); <br>
System.out.println("\n** for statement **"); <br>
sum=0; <br>
for( int i=1; i<=10; i++)∥initialization,termination,iteration <br>
{ sum+=i; <br>
} <br>
System.out.println("sum is "+sum); <br>
} <br>
} <br>
运行结果为: <br>
C:\>java Sum <br>
** while statement ** <br>
sum is 55 <br>
** do_while statement ** <br>
sum is 55 <br>
** for statement ** <br>
sum is 55 <br>
可以从中来比较这三种循环语句,从而在不同的场合选择合适的语句。<br>
例4.5 求100~200间的所有素数<br>
import java.lang.*;<br>
public class PrimeNumber{ <br>
public static void main( String args[] )<br>
{ System.out.println(" ** prime numbers between 100 and 200 **"); <br>
int n=0; <br>
outer:for(int i=101;i<200;i+=2) ∥outer loop <br>
{ int k=(int)Math.sqrt(i);<br>
for(int j=2;j<=k;j++)
∥inner loop <br>
{ if( i%j==0 ) continue outer; <br>
} <br>
System.out.println(i); <br>
} <br>
} <br>
<br>
该例通过一个嵌套的for语句来实现。但是它的结构化很差,应该要尽量少用带标号的continue和break语句(从理论上来说,它们完全可以不用),稍加改动可以变成这个样子:
</p>
<p>import java.lang.*;<br>
public class PrimeNumber{ <br>
public static void main( String args[] )<br>
{ System.out.println(" ** prime numbers between 100 and 200 **"); <br>
int n=0; <br>
for(int i=101;i<200;i+=2) ∥outer loop <br>
{
int k=(int)Math.sqrt(i);<br>
for(int j=2;j<=k;j++) ∥inner loop <br>
{ if( i%j==0 ) <b>break;</b> <br>
}<br>
<b>if (j>k)</b> System.out.println(i); <br>
} <br>
} <br>
</p>
<p>这一次就要好多了,但不是很好懂(易读性较差),还可以改成这个样子:
</p>
<p>import java.lang.*;<br>
public class PrimeNumber{ <br>
public static void main( String args[] )<br>
{ System.out.println(" ** prime numbers between 100 and 200 **"); <br>
int n=0; <br>
for(int i=101;i<200;i+=2) ∥outer loop <br>
{
int k=(int)Math.sqrt(i);<br>
boolean isPrime=true;<br>
for(int j=2;j<=k &&
isPrime;j++) ∥inner loop <br>
{
if( i%j==0 ) <b>isPrime=false;</b> <br>
}<br>
<b>if (isPrime)</b>
System.out.println(i); <br>
} <br>
} <br>
</p>
<p><b>课堂练习<br>
</b>1、编程实现从键盘读入一行字符,然后结束。(提示:System.in.read()一次读入一个字符)<br>
2、输出下列图形<br>
*
*<br>
**
***<br>
***
*****<br>
****
*******
</p>
<p><b>三、例外处理语句</b> <br>
<br>
例外处理语句包括try、catch、finally以及throw语句。与C相比,例外处理语句是Java所特有的。我们将在第六章作专门的介绍。
</p>
<p><b>四、 注释语句</b><br>
Java中可以采用三种注释方式: <br>
1. ∥ 用于单行注释。注释从∥开始,终止于行尾。<br>
2. /* …*/ 用于多行注释。注释从/*开始,到*/结束,且这种注释不能互相嵌套。<br>
3. /** …*/ 是Java所特有的doc注释。它以/**开始,到*/结束。这种注释主要是为支持JDK工具javadoc而采用的。javadoc能识别注释中用标记@标识的一些特殊变量,并把doc注释加入它所生成的HTML文件。对javadoc的详细讲述可参见有关书籍。<br>
<br>
<font size="3"><a href="index.htm">回目录</a>
<a href="java02_08.htm">上一课</a> <a href="java03_01.htm">
下一课</a></font>
</p>
</body>
</html>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -