Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/visual-studio-code/3.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方法_Java_Expression - Fatal编程技术网

石头剪刀Java方法

石头剪刀Java方法,java,expression,Java,Expression,我一直在尝试一个石头剪刀布Java代码 尽管如此,我还是被阻止了,我不明白为什么我的方法中有这么多错误,为什么我的每个int k都是错误的 import java.util.Scanner; import java.util.Random; public class chifoumi { public static void main(String[] args) { System.out.println("Bienvenu à CHIFOUMI...");

我一直在尝试一个石头剪刀布Java代码

尽管如此,我还是被阻止了,我不明白为什么我的方法中有这么多错误,为什么我的每个int k都是错误的

import java.util.Scanner;
import java.util.Random;

public class chifoumi {
    public static void main(String[] args) {
        System.out.println("Bienvenu à CHIFOUMI...");
        Scanner sc = new Scanner(System.in);
        System.out.println("Pierre, feuille, ciseaux?");
        System.out.println("Tape 0, 1 où 2"); // 0 : Pierre
        int joueur = sc.nextInt(); // 1 : Feuille
                                    // 2 : Ciseaux

        int V = jeu(joueur);
        if (V == 1)
            System.out.println("Vous avez gagné !");
        else if (V == 0)
            System.out.println("Vous avez perdu... ");
        else if (V == 2)
            System.out.println("Egalité ! Recommencez ;)");

    }

    public static int jeu(int x){
            Random random = new Random();
            int ordi;
            ordi = random.nextInt(3); 
            if (x == 0 || ordi == 1)
                int k = 0; 
                return k; 
            if (x == 0 || ordi == 2)
                int k = 1; 
                return k; 
            if (x == 1 || ordi == 0)
                int k = 1; 
                return k; 
            if (x == 1 || ordi == 2)
                int k = 0; 
                return k; 
            if (x == 2 || ordi == 0)
                int k = 0; 
                return k; 
            if (x == 2 || ordi == 1)
                int k = 1;
                return k; 
            if (ordi == x)
                int k =2;
                return k;
     }
}

显然,在我的方法中,我所有的int k=。。。你错了。。。无法找出原因。

您的表单方法

if (x == 0 || ordi == 1)
    int k = 0; 
    return k; 
都是真的吗

因为java不是基于缩进的。因此,您总是在第一个语句之后返回。这意味着后面的语句无法访问,这就是编译器抱怨的原因。你应该写的是

if (x == 0 || ordi == 1) {
    int k = 0; 
    return k; 
}
或者更简单的是,去掉k,然后写

if (x == 0 || ordi == 1) {
    return 0; 
}
在这种情况下,实际上可以再次省略大括号,因为只有一条语句有条件地在if上执行:

注意,在jeu方法的末尾,您需要一个额外的返回值;或者抛出一些东西,因为编译器无法确保所有的ifs都是详尽的,并且您总是会发现其中的一个ifs


您应该使用一个IDE,它可以为您进行一些自动格式化/缩进,从而使这些基本类型的错误更容易发现。

错误是什么?非常感谢,您真的在那里调试了我!!我现在一定要检查我的缩进:@hugoch不客气,如果问题解决了,请点击左上角的复选标记接受答案。
if (x == 0 || ordi == 1) {
    return 0; 
}
if (x == 0 || ordi == 1)
    return 0;