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

时间:2016-03-28 03:06:55

标签: java for-loop arraylist

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

}

4 个答案:

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

}