Java 我的代码不是';t工作,我没有错误,看起来很好

Java 我的代码不是';t工作,我没有错误,看起来很好,java,Java,好的,所以无论我输入什么第二次猜测,它说它高于60,但它不是,这可能是一个新手错误,但我不明白为什么?如果有人能运行此程序,修复错误并解释什么是错误的,这将是一个很大的帮助 package testing; import java.util.Scanner; import java.util.Random; public class testerclass { public static void main (String args[]){ double user1ans

好的,所以无论我输入什么第二次猜测,它说它高于60,但它不是,这可能是一个新手错误,但我不明白为什么?如果有人能运行此程序,修复错误并解释什么是错误的,这将是一个很大的帮助

package testing;
import java.util.Scanner;
import java.util.Random;
public class testerclass {
    public static void main (String args[]){
        double user1ans, user2ans, total, number, guess1, guess2, count, diff1, diff2;
        Random dice = new Random();
        Scanner user1 = new Scanner(System.in);
        Scanner user2 = new Scanner(System.in);
        System.out.println("Enter player one's guess: ");
        guess1 = user1.nextInt();
        System.out.println("Enter player two's guess: ");
        guess2 = user2.nextInt();
        if (guess1 > 60 || guess2 > 60);
            System.out.println("You can't guess higher than 60!");
            testerclass.main(args);
        for (count=1; count<=10; count++){
            number = dice.nextInt(6+1);
            total = number + number;
            System.out.println(number);
            System.out.println(total);
        user1ans = guess1 - total;
        user2ans = guess2 - total;
        if (user1ans == 0 && user2ans == 0);
            System.out.println("Its a draw!");
            testerclass.main(args);
        if (user1ans == 0);
            System.out.println("Player one wins!!");
            testerclass.main(args);
        if (user2ans == 0);
            System.out.println("Player two wins!!");
            testerclass.main(args);
        if (user1ans == user2ans && user2ans == user1ans);
            System.out.println("Its a draw!!");
            testerclass.main(args);
        diff1 = Math.abs(guess1 - total);
        diff2 = Math.abs(guess2 - total);
        if (diff1 < diff2);
            System.out.println("Player one wins");
            testerclass.main(args);
        if (diff2 < diff1);
            System.out.println("Player two wins");
            testerclass.main(args);
        }
    }

}
封装测试;
导入java.util.Scanner;
导入java.util.Random;
公共类测试类{
公共静态void main(字符串参数[]){
双用户1号,用户2号,总计,数字,猜测1号,猜测2号,计数,差异1号,差异2号;
随机骰子=新随机();
扫描仪用户1=新扫描仪(System.in);
扫描仪用户2=新扫描仪(System.in);
System.out.println(“输入玩家的猜测:”);
guess1=user1.nextInt();
System.out.println(“输入玩家2的猜测:”);
guess2=user2.nextInt();
如果(猜测1>60 | |猜测2>60);
System.out.println(“你猜不出高于60!”;
主测试级(args);
对于(count=1;count(1)不要使用两个扫描仪,一个就足够了:)(因为您只从一个源读取输入-单个命令行)

(2) 在第一个for循环中,第二行应该是“total=total+number”(?) (3) 此外,您还需要一个差异,因此将
guess1-total
guess2-total
包装在
Math.abs()中:

(4)
if
中的所有命令/函数都应位于一个主体中(“良好”if的示例):

因为否则(就像在代码中一样),它将执行代码,而不管if语句是真是假(因为在
if
之后有一个

(5) 我还建议将整个代码复制到一个新函数中,并调用
return;
而不是
testerclass.main(args)


(我知道,我不应该这么做,但这里是最后的代码)

import java.util.Random;
导入java.util.Scanner;
/**
*由cyphrags于2015年4月28日创建。
*/
公开课考试
{
公共静态void main(字符串参数[]){
while(true)
{
猜猜看();
}
}
公共静态void void gustit()
{
双user1ans,user2ans,total=0,number,guess1,guess2,count,diff1,diff2;
随机骰子=新随机();
扫描仪输入=新扫描仪(系统输入);
System.out.println(“输入玩家的猜测:”);
猜测1=in.nextInt();
System.out.println(“输入玩家2的猜测:”);
猜测2=in.nextInt();
如果(猜测1>60 | |猜测2>60){
System.out.println(“你猜不出高于60!”;
回来
}

对于(count=1;countI建议(i)编写代码(ii)测试它是否能按预期工作(iii)如果不能,问一个问题,描述什么不起作用……为什么不编写代码(你可以自己说)并检查它是否有效?阅读a。我建议从一开始就阅读它,但我向您指出了有关这一点的特定教程。您所有的“如果”都是错误的。不要自己缩进代码,让您的IDE来做。因为您将代码缩进了错误,所以您没有注意到问题。编辑后:Java不是Python。缩进没有问题t使代码属于
if
。唯一属于
if
的部分是,如果条件后有大括号,大括号中的部分,如果没有,第一个
之前的部分。现在检查你的第一个
在哪里。是的,绘图会很方便,这就是为什么我被卡住的原因,因为我发现了找出哪一个更大的差异让我困惑,是的,我刚刚意识到我不需要两个总数,谢谢:)为你的帮助干杯我会在我完成后评论我的代码只是为了让你检查,我想我用了一种稍微不同的方法,但它应该可以工作感谢你的帮助:)没问题,很高兴我可以帮助:)这是我的代码,它不起作用,但如果我在第二次输入中输入它说它高于60,那么这里是最终的代码:)(经过测试,应该可以工作)请务必阅读
正文
中的函数、循环等内容,因为就像Real怀疑论者提到的那样,您的代码看起来与python非常相似。
user1ans = Math.abs(total - guess1);
user2ans = Math.abs(total - guess2)
if(STATEMENT)
{
   // Things to do go here
}
import java.util.Random;
import java.util.Scanner;

/**
 * Created by cyphrags on 28.04.15.
 */
public class test
{
    public static void main (String args[]){
        while(true)
        {
            GuessIt();
        }
    }

    public static void GuessIt()
    {
        double user1ans, user2ans, total = 0, number, guess1, guess2, count, diff1, diff2;

        Random dice = new Random();

        Scanner in = new Scanner(System.in);

        System.out.println("Enter player one's guess: ");
        guess1 = in.nextInt();
        System.out.println("Enter player two's guess: ");
        guess2 = in.nextInt();

        if (guess1 > 60 || guess2 > 60) {
            System.out.println("You can't guess higher than 60!");
            return;
        }

        for (count=1; count<=10; count++) {
            number = dice.nextInt(6 + 1);
            total = number + number;
            //System.out.println(number);
            //System.out.println(total);
        }

        System.out.println(total);

        user1ans = Math.abs(guess1 - total);
        user2ans =  Math.abs(guess2 - total);

        if (user1ans == user2ans) {
            System.out.println("Its a draw!");
        } else if (user1ans < user2ans) {
            System.out.println("Player one wins!!");
        } else {
            System.out.println("Player two wins!!");
        }
    }
}