0

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

我被卡住了,我收到以下错误:http: //i.stack.imgur.com/mUUsb.png

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

这是我的代码:

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);


    }

}
4

3 回答 3

1

该变量String 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++;
        }
于 2013-09-22T12:30:17.153 回答
0

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

你还没有初始化

String stringcomputerKeuze;

尝试初始化

   String stringcomputerKeuze =null;

或者

  String stringcomputerKeuze ="";
于 2013-09-22T12:22:49.663 回答
0

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

因此,在以下代码中:

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

stringcomputerKeuze只存在于while的括号内,当你后面提到它时,Java根本不知道你在说什么。

将声明移到括号外。

于 2013-09-22T12:31:41.080 回答