我收到帶有交換機的cannot find symbol
錯誤。然而,我已經完成了切換,那是在司機。這是我第一次在自己班上使用開關。反正這裏是我的代碼示例:(Java)交換機找不到符號
import java.util.*;
public class TrumpWar
{
protected CardPile pl;
protected CardPile p2;
protected CardPile tCard;
protected CardPile treasury;
public TrumpWar()
{
CardPile cp = new CardPile (new Card [52]);
cp.shuffle();
CardPile tCard = new CardPile();
for (int i=0; i<6; i++)
tCard.get(i);
cp.shuffle();
CardPile p1 = new CardPile(new Card [26]);
CardPile p2 = new CardPile(new Card [26]);
}
public void play()
{
Scanner kb = new Scanner(System.in);
do
{
System.out.println("At each turn, type: ");
System.out.println("P to print");
System.out.println("M to mix (shuffle the cards)");
System.out.println("S to save");
System.out.println("Q to quit");
System.out.println("just ENTER to play a turn");
String meunChoice = kb.nextLine();
if(!meunChoice.equals("M") || !meunChoice.equals("m") || !meunChoice.equals("P") || !meunChoice.equals("p") || !meunChoice.equals("Q") || !meunChoice.equals("q") || !meunChoice.equals("S") || !meunChoice.equals("s") || !meunChoice.equals(str = String.valueOf(kb.nextLine())))
throw new IllegalArgumentException ("Incorrect input, please re-enter.");
else
{
switch (meunChoice)
{
case ("P"):
case ("p"): System.out.println("Player1 cards: " + p1.toString()); //<--- Cannot find p1.
System.out.println("Player1 cards: " + p2.toString());
//More codes...
我不知道,爲什麼我得到這個錯誤時明確聲明瞭開關範圍之外P1。除非與驅動程序相比,在班級中使用開關的方式不同。
此外,請忽略任何邏輯錯誤,因爲這仍然是一項正在進行的工作。至少我需要程序先編譯,然後才能解決任何邏輯錯誤。
謝謝你的幫助!
您可能需要重命名CardPile pl;到CardPile p1;也不要在構造函數中重新聲明它們。 –