我正在使用Deitel和Deitel學習Java,並且正在使用Intellij IDEA IDE。在本書的一個例子中,我將其複製到IDE中,它用一個初始化變量寫入for
循環。當我運行編譯器時,它給了我一個錯誤,說「java找不到符號(變量)我」。即使我知道循環變量在循環之前不需要初始化,但我試圖在循環之前將它聲明爲一個實例變量,並且它運行,但結果不是它應該是的結果(它導致一個矩形或一個橢圓形,這取決於我輸入的開關情況,但它應該通過for循環給我10個,這顯然不會被執行)。 switch
塊位於for
循環內。爲什麼i
變量未被初始化?使用IntellijIDEA在For循環中未初始化循環變量
這是代碼。
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'循環以分號結束,'switch'模塊不在'i'的範圍內。 – khelwood
謝謝!我失去了多少次重讀這一點的計數,我仍然讓這樣的事情通過!我應該懷疑它的結果是我得到了! – NeoTrader