Java语言入门教程

[09-12 12:22:20]   来源:http://www.88dzw.com  电路基础   阅读:8745

文章摘要:看过以上代码的多数人会立刻注意到有两行代码被一遍遍重复了。在我们这个特例中,重复现象还不是很严重。但可以想像如果需要绘制包含上千个行和列的网格时,用这种方法编程将会是多么劳累。解决此问题的办法就是循环,如下所示:import java.awt.Graphics;public class FirstApplet extends java.applet.Applet{ public void paint(Graphics g) { int y; y = 10; while (y <= 210) {

Java语言入门教程,标签:电子电路基础,模拟电路基础,http://www.88dzw.com

看过以上代码的多数人会立刻注意到有两行代码被一遍遍重复了。在我们这个特例中,重复现象还不是很严重。但可以想像如果需要绘制包含上千个行和列的网格时,用这种方法编程将会是多么劳累。解决此问题的办法就是循环,如下所示:

import java.awt.Graphics;

public class FirstApplet extends java.applet.Applet
{

public void paint(Graphics g)
{
int y;
y = 10;
while (y <= 210)
{
g.drawLine(10, y, 210, y);
y = y + 25;
}
}
}

运行程序时您会看到它会绘制九条200像素长的水平线。

while语句是Java中的一种循环语句。该语句告诉Java按照如下方式工作:执行到while语句时,Java查看括号中的表达式后判断:“y是否小于等于210?”

  • 如果答案是肯定的,Java将进入用花括号({})包围的代码块。循环发生在代码块的结尾处。当Java执行到结尾的花括号时就返回到前面的while语句处回答同样的问题。这种循环过程可能要进行许多次。
  • 如果答案是否定的,Java将跳过用花括号包围的代码块继续执行。

因此您可以看到,程序开始运行时y的初值是10。10小于210,所以Java进入花括号代码块,绘制从(10,10)到(210, 10)的直线,将y设为35,然后回溯到while语句。35小于210,所以Java进入花括号代码块,绘制从(10,35)到(210, 35)的直线,将y设为60,然后回溯到while语句。此过程一直重复直到y终于超过了210,然后程序结束。

在程序中加入第二个循环即可完成网格的绘制,如下所示:

import java.awt.Graphics;

public class FirstApplet extends java.applet.Applet
{

public void paint(Graphics g)
{
int x, y;
y = 10;
while (y <= 210)
{
g.drawLine(10, y, 210, y);
y = y + 25;
}
x = 10;
while (x <= 210)
{
g.drawLine(x, 10, x, 210);
x = x + 25;
}
}
}

可见一个while语句包含三部分:

  • 一个初始化步骤,将y设为10。
  • 一个求值步骤,在while语句的括号中。
  • while语句的某处会有一个增量步骤,递增y的值。

Java支持另一种比while语句更为紧凑的方式完成同样的工作。这就是for语句。如果您有如下的while语句:

y = 10;
while (y <= 210)
{
g.drawLine(10, y, 210, y);
y = y + 25;
}

那么等价的for语句看起来就是这样子:

for (y = 10; y <= 210; y = y + 25)
{
g.drawLine(10, y, 210, y);
}

可见for语句的全部工作是将初始化、求值和增量步骤精简到一个短行之中。它只是缩短了您编写代码的长度,仅此而已。

关于循环顺便提出下面两点值得注意的地方:

  • 许多情况下将y初始化为210然后在循环中每次递减25同样是很容易的。求值部分的问题将变为:“y是否大于等于10?”您可以选择两种方法中的任何一种。多数人觉得用加法比用减法更舒服一些。但您可能有不同的感觉。
  • 增量步骤十分重要。假如您无意间漏写了循环中“y=y+25;”这行,于是y的值将不会改变——它总是等于10。因此它永远不会超过210,循环也就会无限地进行下去(直到你关闭计算机或程序窗口时才停止)。这种情况称为无限循环,是一种常见的编程错误。

作为循环的练习,试编写代码绘制下面的图形:

各种图形

上一页  [1] [2] [3] [4] [5] [6] [7] 


Tag:电路基础电子电路基础,模拟电路基础电路基础

《Java语言入门教程》相关文章