我正在编写下面的代码来创建一个ArrayList
,将它改组,然后取前三个元素,但由于某种原因,当我启动for循环时,我遇到语法错误令牌“;”
import java.util.ArrayList;
public class cardsShuffle {
ArrayList<String> cards = new ArrayList<>()
for (int i = 0; i < 52; i++){
cards.add(String.valueOf(i+1));
java.util.Collections.shuffle(cards);
}
public static void main(String args[]){
cardsShuffle s = new cardsShuffle();
System.out.println(s.cards.get(0));
System.out.println(s.cards.get(1));
System.out.println(s.cards.get(2));
}
答案 0 :(得分:1)
你在行&#34; ArrayList cards = new ArrayList&lt;&gt;()&#34;之后缺少分号。只需要一个分号,你的代码就没有错误了:)
答案 1 :(得分:0)
您已编写for循环外部函数。减速以外的所有内容都应写在函数或块内。
import java.util.ArrayList;
public class CardsShuffle
{
public static ArrayList<String> cards = new ArrayList<>();
public static void main(String args[])
{
System.out.println(cards.get(0));
System.out.println(cards.get(1));
System.out.println(cards.get(2));
for (int i = 0; i < 52; i++)
{
cards.add(String.valueOf(i+1));
java.util.Collections.shuffle(cards);
}
}
}
代码应该是这样的......总是要在函数内部执行。
答案 2 :(得分:0)
试试这个
import java.util.ArrayList;
public class cardsShuffle {
public static void main(String args[]) {
ArrayList<String> cards = new ArrayList<>();
for(int i = 0; i<52;i++)
{
cards.add(String.valueOf(i + 1));
java.util.Collections.shuffle(cards);
}
cardsShuffle s = new cardsShuffle();
System.out.println(cards.get(0));
System.out.println(cards.get(1));
System.out.println(cards.get(2));
}
}
答案 3 :(得分:0)
您不能只将代码放入类中。它需要位于方法,构造函数或初始化程序块内部或字段初始化的RHS(不可能用于循环)。
此外,您无需在添加每张卡后进行随机播放。由于Collections.shuffle
产生随机排列,因此在循环之后使用它就足够了。
public class cardsShuffle {
// field declaration
ArrayList<String> cards;
// constructor
public cardsShuffle() {
cards = new ArrayList<>();
for (int i = 0; i < 52; i++){
cards.add(String.valueOf(i+1));
}
java.util.Collections.shuffle(cards);
}
public static void main(String args[]) {
cardsShuffle s = new cardsShuffle();
System.out.println(s.cards.get(0));
System.out.println(s.cards.get(1));
System.out.println(s.cards.get(2));
}
}