循环变量未使用IntellijIDEA在For循环中初始化

时间:2016-10-19 15:31:58

标签: java loops variables

我和Deitel和Deitel一起学习Java,我正在使用Intellij IDEA IDE。在我复制到IDE的本书的一个示例中,它使用初始化变量写入for循环。当我运行编译器时,它给我一个错误,说" java无法找到符号(变量)i"。虽然我知道循环变量在循环之前不需要初始化,但我尝试在循环之前将其声明为实例变量,并且它确实运行,但结果不是它应该是什么(它的结果在一个矩形或一个椭圆形中,取决于我输入的开关盒,但它应该通过for循环给我10个,这显然没有被执行)。 switch块位于for循环内。为什么i变量没有被初始化?

这是代码。

package com.example.java;
import java.awt.Graphics;
import javax.swing.JPanel;

public class Shapes extends JPanel
{
    private int choice;

    public Shapes(int userChoice)
    {
        choice = userChoice;
    }

    public void paintComponent(Graphics g)
    {
        super.paintComponent(g);

        for (int i = 0; i < 10; i++);
        {
            switch(choice)
            {
            case 1:
                g.drawRect( 10 + i * 10, 10 + i * 10,
                        50 + i * 10, 50 + i*10);
                break;
            case 2:
                g.drawOval( 10 + i * 10, 10 + i * 10,
                        50 + i * 10, 50 + i*10);
                break;
            }
        }
    }
}

3 个答案:

答案 0 :(得分:4)

for (int i = 0; i < 10; i++);

注意那些分号;)

for (int i = 0; i < 10; i++)

答案 1 :(得分:0)

这是您的for loop

  

for (int i = 0; i < 10; i++); {

您应将其更改为:

for (int i = 0; i < 10; i++){

你正在做的是一遍又一遍地执行任何事情,然后打开一个新的块。

For loops for(;;){} 的语法与do while loops do{}while();

的语法相同

您可以使用for(;;);的唯一情况是您希望执行一行代码。

例如:for(int index = 0; index < 5; index++)System.out.println(index);

答案 2 :(得分:0)

for (int i = 0; i < 10; i++);包含一个分号,仅将for循环的范围限制为此行。如果你纠正这个,你的代码应该可以正常工作。