我和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;
}
}
}
}
答案 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循环的范围限制为此行。如果你纠正这个,你的代码应该可以正常工作。