Java Can';尝试使用列表中随机值的字符串时找不到符号错误

Java Can';尝试使用列表中随机值的字符串时找不到符号错误,java,find,symbols,Java,Find,Symbols,这基本上是我的第一个java程序,除了Hello world。 在过去的几个小时里,我试着找出尽可能多的错误,但我不断发现新的错误。我试着用谷歌搜索解决方案,但最终他们给了我新的错误,但我想这就是你学习的方式^^ 但是我被卡住了,我得到了以下错误: 我尝试了几种不同的方法来实现我的目标,即从列表中选择一个随机字符串。 这个程序的全部目标是,你通过输入哪种类型(红心、梅花、钻石、黑桃)和卡号来选择一张卡。 计算机还必须选择一张卡片,我的练习告诉我使用默认卡片,但我宁愿生成一个随机类型和数字来显示

这基本上是我的第一个java程序,除了Hello world。 在过去的几个小时里,我试着找出尽可能多的错误,但我不断发现新的错误。我试着用谷歌搜索解决方案,但最终他们给了我新的错误,但我想这就是你学习的方式^^

但是我被卡住了,我得到了以下错误:

我尝试了几种不同的方法来实现我的目标,即从列表中选择一个随机字符串。 这个程序的全部目标是,你通过输入哪种类型(红心、梅花、钻石、黑桃)和卡号来选择一张卡。 计算机还必须选择一张卡片,我的练习告诉我使用默认卡片,但我宁愿生成一个随机类型和数字来显示计算机的选择

这是我的密码:

package userinput;
import javax.swing.JOptionPane;
import java.*;
import java.io.*;
import java.util.*;

public class Thuisopdracht {
    public static void main(String[] args) throws InterruptedException {
        List<String> lijstKaarten = new LinkedList<String>();
        lijstKaarten.add("Harten");
        lijstKaarten.add("Ruitens");
        lijstKaarten.add("Klaveren");
        lijstKaarten.add("Schuppen");

    Random rand = new Random();
    while (true) {
        int computerKeuze = rand.nextInt(lijstKaarten.size());
        String stringcomputerKeuze;
        stringcomputerKeuze = lijstKaarten.get(computerKeuze);
    }


    double computerNummer = (Math.random() * (13 - 1)) + 1;

    String typeKaart;
    typeKaart = JOptionPane.showInputDialog("Welk type kaart kies je?");

    InputStreamReader istream = new InputStreamReader(System.in) ;
    BufferedReader bufRead = new BufferedReader(istream) ;
    System.out.println("Welke kaartnummer kiest u? (1-13)");
    String kaartNummer = bufRead.readLine();

    int intKaartNummer = Integer.parseInt(kaartNummer);

    System.out.println("De computer koos " + stringcomputerKeuze + " " + computerNummer);
    System.out.println("Jij koos " + typeKaart + " " + kaartNummer);


    }

}
包用户输入;
导入javax.swing.JOptionPane;
导入java。*;
导入java.io.*;
导入java.util.*;
公共类Thuisodracht{
公共静态void main(字符串[]args)引发InterruptedException{
List lijstKaarten=newlinkedlist();
lijstKaarten.添加(“Harten”);
lijstKaarten.add(“Ruitens”);
添加(“Klaveren”);
lijstKaarten.add(“Schuppen”);
Random rand=新的Random();
while(true){
int computerKeuze=rand.nextInt(lijstKaarten.size());
弦乐;
stringcomputerKeuze=lijstKaarten.get(computerKeuze);
}
双计算机numer=(Math.random()*(13-1))+1;
弦乐艺术;
typeKaart=JOptionPane.showInputDialog(“Welk-typeKaart-kies-je?”);
InputStreamReader istream=新的InputStreamReader(System.in);
BufferedReader bufRead=新的BufferedReader(istream);
System.out.println(“Welke-kaartnummer-KiestU?(1-13)”;
字符串kaartNummer=bufRead.readLine();
int intkaartnumer=Integer.parseInt(kaartnumer);
System.out.println(“De computer koos”+stringcomputerKeuze+”+computernumer);
System.out.println(“Jij-koos”+typeKaart+”+kaartnumer);
}
}

在使用变量之前,必须在方法中初始化变量

您尚未初始化

String stringcomputerKeuze;
试着像这样初始化

   String stringcomputerKeuze =null;


变量
字符串stringcomputerKeuze未在while循环中初始化和声明。您无法从所做的println访问它。初始化它并在循环外部声明它

Random rand = new Random();
String stringcomputerKeuze = "";
while (true) {
        int computerKeuze = rand.nextInt(lijstKaarten.size());
        stringcomputerKeuze = lijstKaarten.get(computerKeuze);
}
循环中还需要一个停止条件,因为它将无限期运行。 您可以为每个示例添加一个计数器:

        String stringcomputerKeuze = "";
        int counter = 0;
        while (counter != 5) {
            int computerKeuze = rand.nextInt(lijstKaarten.size());
            stringcomputerKeuze = lijstKaarten.get(computerKeuze);
            counter++;
        }

变量仅在声明它的括号内可见

因此,在以下代码中:

while (true) {
    int computerKeuze = rand.nextInt(lijstKaarten.size());
    String stringcomputerKeuze;
    stringcomputerKeuze = lijstKaarten.get(computerKeuze);
}
stringcomputerKeuze
只存在于while的括号内,当您稍后提到它时,Java不知道您在说什么

将声明移到括号外

while (true) {
    int computerKeuze = rand.nextInt(lijstKaarten.size());
    String stringcomputerKeuze;
    stringcomputerKeuze = lijstKaarten.get(computerKeuze);
}