簡體   English   中英

未使用IntellijIDEA在For Loop中初始化循環變量

[英]Loop variable not initialized in For Loop with IntellijIDEA

我正在使用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;
            }
        }
    }
}
 for (int i = 0; i < 10; i++); 

觀看那些分號;)

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

這是您的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);

for (int i = 0; i < 10; i++); 包含一個分號,該分號僅將for循環的范圍限制為該行。 如果您對此進行更正,則您的代碼應該可以正常工作。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM