📄 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 + -