Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/loops/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 未在带有IntellijIDEA的For循环中初始化循环变量_Java_Loops_Variables - Fatal编程技术网

Java 未在带有IntellijIDEA的For循环中初始化循环变量

Java 未在带有IntellijIDEA的For循环中初始化循环变量,java,loops,variables,Java,Loops,Variables,我正在与Deitel和Deitel一起学习Java,我正在使用Intellij IDEA。在我复制到IDE的书的一个例子中,它用一个初始化变量为编写了一个for循环。当我运行编译器时,它给我一个错误,说“java找不到符号(变量)I”。尽管我知道循环变量在循环之前不需要初始化,但我尝试在循环之前将其声明为实例变量,并且它确实运行,但结果并不是预期的结果(根据我输入的开关情况,它会产生一个矩形或一个椭圆形,但它应该通过for循环给我10个矩形或椭圆形,这显然没有被执行。)switch块在for循环

我正在与Deitel和Deitel一起学习Java,我正在使用Intellij IDEA。在我复制到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;
            }
        }
    }
}
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++)