为什么在这个java程序的for循环定义中会出现语法错误?

jq6vz3qz  于 2021-07-13  发布在  Java
关注(0)|答案(4)|浏览(310)

我正在编写下面的代码来创建一个 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));

}
5sxhfpxr

5sxhfpxr1#

“arraylist cards=new arraylist<>()”行后缺少分号。只需输入分号,代码就不会出错:)

dgjrabp2

dgjrabp22#

试试这个

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

}
v1l68za4

v1l68za43#

你不能只是把代码放到一个类中。它需要位于方法、构造函数或初始值设定项块或字段初始化的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));
    }

}
7tofc5zh

7tofc5zh4#

您已经编写了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);
        }
    }
}

代码应该是这样的…总是要在函数内部执行的东西。

相关问题