Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/355.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
为什么在这个Java程序的for循环定义中会出现语法错误?_Java_For Loop_Arraylist - Fatal编程技术网

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

为什么在这个Java程序的for循环定义中会出现语法错误?,java,for-loop,arraylist,Java,For Loop,Arraylist,我正在编写下面的代码来创建一个ArrayList,将其洗牌,并获取前三个元素,但由于某种原因,在启动for循环时,我在标记上得到了一个语法错误“ import java.util.ArrayList; 公开课卡片洗牌{ ArrayList卡=新的ArrayList() 对于(int i=0;i

我正在编写下面的代码来创建一个
ArrayList
,将其洗牌,并获取前三个元素,但由于某种原因,在启动for循环时,我在标记上得到了一个语法错误“

import java.util.ArrayList;
公开课卡片洗牌{
ArrayList卡=新的ArrayList()
对于(int i=0;i<52;i++){
卡片.添加(字符串.值(i+1));
java.util.Collections.shuffle(卡片);
}
公共静态void main(字符串参数[]){
cardsShuffle s=新卡Shuffle();
System.out.println(s.cards.get(0));
System.out.println(s.cards.get(1));
System.out.println(s.cards.get(2));
}

您在“ArrayList cards=new ArrayList()”行后缺少分号。只需输入分号,您的代码将不会出错:)

您已在函数外部编写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);
        }
    }
}
import java.util.ArrayList;
公开课卡片洗牌
{
公共静态ArrayList卡=新建ArrayList();
公共静态void main(字符串参数[])
{
System.out.println(cards.get(0));
System.out.println(cards.get(1));
System.out.println(cards.get(2));
对于(int i=0;i<52;i++)
{
卡片.添加(字符串.值(i+1));
java.util.Collections.shuffle(卡片);
}
}
}
代码应该是这样的……总是在函数内部执行一些东西。

试试这个

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

}
import java.util.ArrayList;
公开课卡片洗牌{
公共静态void main(字符串参数[]){
ArrayList cards=新的ArrayList();

对于(int i=0;i您不能只将代码放入类中。它需要位于方法、构造函数或初始值设定项块或字段初始化的RHS内部(对于循环不可能)

此外,您不需要在添加每张卡后进行洗牌。因为
集合.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));
    }

}
public class cardshuffle{
//字段声明
ArrayList卡片;
//建造师
公共卡洗牌(){
cards=新的ArrayList();
对于(int i=0;i<52;i++){
卡片.添加(字符串.值(i+1));
}
java.util.Collections.shuffle(卡片);
}
公共静态void main(字符串参数[]){
cardsShuffle s=新卡Shuffle();
System.out.println(s.cards.get(0));
System.out.println(s.cards.get(1));
System.out.println(s.cards.get(2));
}
}

1)新建ArrayList()后缺少分号。
2)for循环不在任何方法内。您可以创建一个静态方法,其中包含for循环,并通过
ArrayList cards=myStaticMethod()使用该方法初始化卡片列表即使在前两个之后,也会出现错误,因为静态方法无法引用实例变量。卡片列表必须是静态的。我将循环放在主方法中,然后我必须从prin.outln中删除s。现在它可以工作了。错!类主体中仍然有for循环。您无法访问非
static
字段,而不指定包含类的实例。
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));
    }

}