Java 未在带有IntellijIDEA的For循环中初始化循环变量
我正在与Deitel和Deitel一起学习Java,我正在使用Intellij IDEA。在我复制到IDE的书的一个例子中,它用一个初始化变量为编写了一个Java 未在带有IntellijIDEA的For循环中初始化循环变量,java,loops,variables,Java,Loops,Variables,我正在与Deitel和Deitel一起学习Java,我正在使用Intellij IDEA。在我复制到IDE的书的一个例子中,它用一个初始化变量为编写了一个for循环。当我运行编译器时,它给我一个错误,说“java找不到符号(变量)I”。尽管我知道循环变量在循环之前不需要初始化,但我尝试在循环之前将其声明为实例变量,并且它确实运行,但结果并不是预期的结果(根据我输入的开关情况,它会产生一个矩形或一个椭圆形,但它应该通过for循环给我10个矩形或椭圆形,这显然没有被执行。)switch块在for循环
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;
}
}
}
}
package com.example.java;
导入java.awt.Graphics;
导入javax.swing.JPanel;
公共类形状扩展了JPanel
{
私人选择;
公共形状(int userChoice)
{
选择=用户选择;
}
公共组件(图形g)
{
超级组件(g);
对于(inti=0;i<10;i++);
{
开关(选择)
{
案例1:
g、 drawRect(10+i*10,10+i*10,
50+i*10,50+i*10);
打破
案例2:
g、 drawOval(10+i*10,10+i*10,
50+i*10,50+i*10);
打破
}
}
}
}
for(inti=0;i<10;i++);
注意那些分号;)
for(int i=0;i<10;i++)
for(inti=0;i<10;i++);
注意那些分号;)
for(int i=0;i<10;i++)
这是循环的:
for(inti=0;i<10;i++);
{
您应该将其更改为:
for(inti=0;i<10;i++){
您所做的是一次又一次地不执行任何操作,然后打开一个新块
For循环
For(;;){}
的语法与do while循环
do{}while();
唯一可以对(;;);
使用的情况是要执行一段代码
例如:For(int index=0;index<5;index++)System.out.println(index);这是您的For循环
:
for(inti=0;i<10;i++);
{
您应该将其更改为:
for(inti=0;i<10;i++){
您所做的是一次又一次地不执行任何操作,然后打开一个新块
For循环
For(;;){}
的语法与do while循环
do{}while();
唯一可以对(;;);
使用的情况是要执行一段代码
例如:For(int index=0;index<5;index++)System.out.println(index);
For(int i=0;i<10;i++);
包含一个分号,该分号将For循环的范围仅限于此行。如果您更正了这一点,您的代码应该可以正常工作。For(int i=0;i<10;i++);
包含一个分号,该分号将for循环的作用域仅限于此行。如果您更正了这一点,您的代码应该可以正常工作。删除for(int i=0;i<10;i++)末尾的分号
。否则,您的for
循环以分号结尾,而开关
块超出了i
的范围。谢谢!我记不清我重读了多少次,仍然让类似的内容通过了!我应该怀疑我得到的结果!删除末尾的分号(int i=0;i<10;i++);
。否则,您的for
循环以分号结束,而开关
块超出了i
的范围。谢谢!我记不清我重读了多少次了,我还是让类似的东西通过了!我应该怀疑我得到的结果!
for (int i = 0; i < 10; i++);
for (int i = 0; i < 10; i++)