我正在用java创建一个改组程序。我该如何退出呢。我是通过System.exit(0)来做的; ?
答案 0 :(得分:2)
语句属于方法/构造函数体,但是您在任何方法之外都有这些方法调用:
shuffle(deck);
draw(deck);
将它们移到方法或构造函数中。
另外,那些方法没有参数;将参数添加到方法中或从调用中删除它们。
此外,这一行是一个无限循环,需要修复:
while (true);
您需要删除该分号,并根据您想要的while
循环体,放置相应的大括号。
答案 1 :(得分:0)
shuffle
和draw
的方法声明没有参数,但是当您调用它们时,您正在传递deck
此外,您应该将呼叫转移到main
功能
答案 2 :(得分:0)
代码无法编译。让它编译。但我不认为它做你想做的事,因为其他人建议你需要修复无限循环。
这是可以解决的可编译代码...应该让你在这里更快一点。
正如其他人所提到的那样,移除顶部的洗牌(牌组)和抽牌(牌组)线。你还需要一个静态主体。还包括问题。以此为出发点。它运行。
import java.util.*;
public class Deck
{
static String [] number =
{
"Ace", "Two", "Three", "Four", "Five", "Six", "Seven", "Eight", "Nine", "Ten", "Jack", "Queen", "King"
}
;
static String [] suit =
{
"Clubs", "Hearts", "Diamonds", "Spades"
}
;
static String [] deck = new String[52];
int cardsUsed = 0;
public static void main (String [] args)
{
Deck d = new Deck();
for (int i = 0;
i<
number.length;
i++)
{
for (int j = 0;
j<
suit.length;
j++)
{
deck[13*j+i] = number[i] + " of " + suit[j];
}
}
while (true)
{
System.out.println ("shuffle or draw");
Scanner s = new Scanner(System.in);
System.out.println ("What would you like to do?");
String command = s.next( );
if (command.equals("shuffle"))
{
d.shuffle();
}
else if (command.equals("draw"))
{
d.draw();
}
s.close();
}
}
public void shuffle ()
{
int k;
Random shuffle = new Random();
for (k = deck.length-1;
k >
= 0;
k--)
{
int index = Math.abs((shuffle.nextInt())%52);
String temp = deck[k];
deck[k] = deck[index];
deck[index] = temp;
}
int l;
for (l = 0;
l<
deck.length;
l++)
{
System.out.println (deck[l]);
}
}
public void draw ()
{
System.out.print (deck[cardsUsed]);
if (cardsUsed <
deck.length)
{
System.out.print (deck[cardsUsed]);
}
else
{
System.out.println ("No cards are left in the deck.");
cardsUsed++;
}
}
}