📄 java入门(7).htm
字号:
<TD>
<TABLE class=brightblk cellSpacing=0 cellPadding=8 width="100%"
border=0>
<TBODY>
<TR>
<TD><SPAN class=titleblk>Java入门(7)Java流程控制</SPAN><BR>
<BLOCKQUOTE class=sumblk><STRONG>摘要</STRONG><BR>
<P> 通过本章的学习,读者应该能够使用if-then-else语句、while语句、for语句、switch语句控制Java程序的流程,能够在最合适使用的时候,使用它们。并且知道它们与其它程序设计语言的流程控制之间的不同。</P>(2002-08-29
14:10:01)</BLOCKQUOTE>
<HR width="98%" noShade SIZE=4>
<STRONG>By <A
href="mailto:wing@linuxaid.com.cn">Wing</A></STRONG>, 出处:<A
href="http://www.linuxaid.com.cn/articles/7/0/www.linuxaid.com.cn">fjxufeng</A><BR><BR><SPAN
class=contentblk>
<P><B> 本章目标:</B></P>
<P> 通过本章的学习,读者应该能够使用if-then-else语句、while语句、for语句、switch语句控制Java程序的流程,能够在最合适使用的时候,使用它们。并且知道它们与其它程序设计语言的流程控制之间的不同。</P>
<P><B> 7.1 分支结构</B></P>
<P><B> 实例说明</B></P>
<P> 1.首先,我们使用文字编辑软件输入下源程序。</P>
<P> 源程序:testBranch1.java</P>
<TABLE cellSpacing=0 cellPadding=5 width="100%"
bgColor=#cccccc border=1>
<TBODY>
<TR>
<TD><PRE><CODE>
public class testBranch1
{
public static void main(String args[])
{
int myScore=96;
if (myScore >= 90)
System.out.println("Very Good!”);
if (myScore < 90)
System.out.println(“make great efforts!”);
}
}
</CODE></PRE></TD></TR></TBODY></TABLE>
<P><B> 注意:</B></P>
<P> 如果在编译过程中,出现了错误,请检查if(myScore>=90)和if(MyScore<90)两个表达式后面是否多加了分号,如果多加上,就将其删掉。在此不允许加上分号。</P>
<P> 2.使用javac编译这个程序,如果正确完成编译,将在当前目录下生成一个名为testBranch1.class的文件;</P>
<P> 3.最后输入以下命令,运行这个程序:</P>
<TABLE cellSpacing=0 cellPadding=5 width="100%"
bgColor=#cccccc border=1>
<TBODY>
<TR>
<TD><PRE><CODE>
c:javastudy> java testBranch1
</CODE></PRE></TD></TR></TBODY></TABLE>
<P> 执行这个程序,将输出一些信息,如下图所示:</P><A
href="Java入门(7).files/7-1.jpg"><IMG alt=7-1
src="Java入门(7).files/7-1.jpg" width=450 border=0></A>
<P><B> 图7-1 程序testBranch1.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 myScore=96;
int myScore=96:
</CODE></PRE></TD></TR></TBODY></TABLE>
<P> 定义一个变量,名为myScore(应该代表“我的成绩”),值为96。哦,就是说我的成绩是96分;</P>
<P> 2)</P>
<TABLE cellSpacing=0 cellPadding=5 width="100%"
bgColor=#cccccc border=1>
<TBODY>
<TR>
<TD><PRE><CODE>
if (myScore >= 90)
System.out.println("Very Good!”);
</CODE></PRE></TD></TR></TBODY></TABLE>
<P> 这种格式的语句,我们在前面并没有遇到过,在此,我们就试着读一读。if,就是如果的意思。也就是说if(myScore>=90)的意思“如果myScore大于或等于90”。</P>
<P> 那么当myScope大于或等于90就如何呢?System.out.println(“Very
Good!”);做出了回答,向屏幕输出“Very Good!”这一祝贺语。</P>
<P> 这也就是为什么在if(myScore>=90)的后面不能加上分号的原因?由于分号代表一个语句的结束,而说到if(myScore>=90)时,并没有说完呀。</P>
<P><B> 一些提示:</B></P>
<P> 在上面的程序段中System.out.println(“Very
Good!”);向内缩格,是为了大家一眼就看出,它从属于上面的if语句。这是一种良好的编码习惯,但在语法是却并不是主要的。</P>
<P> 这两句程序最终实现了,当“我的成绩”高于90分时,就夸奖我“Very Good!”。</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(“make great efforts!”);
</CODE></PRE></TD></TR></TBODY></TABLE>
<P> 通过对上一条语句的分析,我想大家都应该能够十分容易地知道这条语句就是要表达:如果“我的成绩”小于90分,就鼓励我“make
great efforts!”(加油,继续努力!)。</P>
<P> 好,我们现在来分析一下程序的输出结果:只输出了“Very
Good!”,也就是说System.out.println(“make great
efforts!”);并没有执行!为什么没有执行呀?因为myScope比90大呀(这样表达式myScore <
90的值就是false了)。</P>
<P> 到此为止,我们就算摸清了if语句的脾气了,如下图所示:</P><A
href="Java入门(7).files/7-2.jpg"><IMG alt=7-2
src="Java入门(7).files/7-2.jpg" width=450 border=0></A>
<P><B> 图7-2 基本if语句控制流示意图</B></P>
<P> 1) 首先判断if语句中的逻辑表达式(这个逻辑表达式的值是boolean型);</P>
<P> 2) 如果是true,则执行if语句后部分的语句,完成某些操作;</P>
<P> 3) 而如果是false,就不执行if语句后部分的语句,继续执行if语句后面的程序。</P>
<P> if语句就是Java语言中提供的分支结构的流程控制语句。基本if语句的格式为:</P>
<P><B> if (逻辑表达式) 语句;</B></P>
<P> 在本例中,当逻辑表达式的值为true时要执行的语句只有一条,如果有多条时,应该使用“{}”把它们围起来:</P>
<TABLE cellSpacing=0 cellPadding=5 width="100%"
bgColor=#cccccc border=1>
<TBODY>
<TR>
<TD><PRE><CODE>
if (逻辑表达式)
{
语句1;
语句2;
……
}
</CODE></PRE></TD></TR></TBODY></TABLE>
<P> 有时,在我们的程序中,会需要使用到如下图所示的流程控制:</P><A
href="Java入门(7).files/7-3.jpg"><IMG alt=7-3
src="Java入门(7).files/7-3.jpg" width=450 border=0></A>
<P><B> 图7-3 更复杂的分支结构流程控制语句</B></P>
<P><B> 实例说明</B></P>
<P> 如果使用后一种结构的if语句,会使得程序的流程更加清晰:</P>
<P> 1.首先,我们使用文字编辑软件输入下源程序。</P>
<P> 源程序:testBranch2.java</P>
<TABLE cellSpacing=0 cellPadding=5 width="100%"
bgColor=#cccccc border=1>
<TBODY>
<TR>
<TD><PRE><CODE>
public class testBranch2
{
public static void main(String args[])
{
int myScore=96;
if (myScore >= 90)
{
System.out.println("Very Good!”);
}
else
{
System.out.println(“make great efforts!”);
}
}
}
</CODE></PRE></TD></TR></TBODY></TABLE>
<P> 2.使用javac编译这个程序,并运行这个程序。我们将发现这个程序的输出是与上一个程序testBranch1的输出完全一样的:</P><A
href="Java入门(7).files/7-4.jpg"><IMG alt=7-4
src="Java入门(7).files/7-4.jpg" width=450 border=0></A>
<P><B> 图7-4 程序testBranch2.java的输出</B></P>
<P><B> 传授新知</B></P>
<P> 大家可以看到,这个程序就可读了,如果myScore(“我的成绩”)大于或等于90,那么就打印“Very
Good!”,否则(也就是说myScore不大于或等于90,即小于90)就打印“make great
efforts!”。</P>
<P> 从这个例子中,我们可以总结出if-then-else结构的if语句格式:</P>
<TABLE cellSpacing=0 cellPadding=5 width="100%"
bgColor=#cccccc border=1>
<TBODY>
<TR>
<TD><PRE><CODE>
if (逻辑表达式)
{
语句;
}
else
{
语句;
}
</CODE></PRE></TD></TR></TBODY></TABLE>
<P> 在本节中,我们学习了流程控制中最基本的一种:分支结构。在Java语言中,是使用if语句来实现的。</P>
<P><B> 自测练习</B></P>
<P> 1) 使用if-then-else语句,_______使用缩排。</P>
<P> a.不能 b.建议 c.必须 d.有时必须</P>
<P> 2) 阅读以下程序,回答问题:</P>
<TABLE cellSpacing=0 cellPadding=5 width="100%"
bgColor=#cccccc border=1>
<TBODY>
<TR>
<TD><PRE><CODE>
if (myScore >= 90)
System.out.println("Congratulate to you!”);
System.out.println("You score is very good!”);
if (myScore < 90)
System.out.println(“make great efforts!”);
</CODE></PRE></TD></TR></TBODY></TABLE>
<P> 如果myScore=96,则程序将输出什么?</P>
<P> ____________________________________________________________________</P>
<P> ____________________________________________________________________</P>
<P> 如果mySore=50,则程序将输出什么?</P>
<P> ____________________________________________________________________</P>
<P> ____________________________________________________________________</P>
<P> 你认为这符合逻辑吗,如果不合逻辑该如何修改?</P>
<P> ____________________________________________________________________</P>
<P> ____________________________________________________________________</P>
<P> ____________________________________________________________________</P>
<P> 3)写一个程序段,判断成绩(myScope),若小于60,则输出bad;若大于60,则输出middle;若大于80,就输出good;若大于90时,输出better。</P>
<P><B> 练习答案</B></P>
<P> 1)b 采用缩排能够使程序结构更加清晰,但这只是一个建议。</P>
<P> 2)§ 如果myScope=96,程序将输出:</P>
<TABLE cellSpacing=0 cellPadding=5 width="100%"
bgColor=#cccccc border=1>
<TBODY>
<TR>
<TD><PRE><CODE>
Congratulate to you!
You score is very good!
</CODE></PRE></TD></TR></TBODY></TABLE>
<P> § 如果myScope=50,程序将输出:</P>
<TABLE cellSpacing=0 cellPadding=5 width="100%"
bgColor=#cccccc border=1>
<TBODY>
<TR>
<TD><PRE><CODE>
You score is very good!
make great efforts!
</CODE></PRE></TD></TR></TBODY></TABLE>
<P> § 当成绩为50分时,程序还说“you score is very
good!”,这说明这个程序不符合逻辑。应该改为:</P>
<TABLE cellSpacing=0 cellPadding=5 width="100%"
bgColor=#cccccc border=1>
<TBODY>
<TR>
<TD><PRE><CODE>
if (myScore >= 90)
{
System.out.println("Congratulate to you!”);
System.out.println("You score is very good!”);
}
if (myScore < 90)
System.out.println(“make great efforts!”);
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -