Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/loops/2.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_Loops - Fatal编程技术网

Java 提示用户重新输入整数,直到输入二进制数

Java 提示用户重新输入整数,直到输入二进制数,java,loops,Java,Loops,我对JAVA(顺便说一句,计算机编程)是新手。以下程序检查输入是否为二进制。它应该提示用户重新输入整数,直到输入二进制数。但这个项目却恰恰相反。 它要求我在输入为二进制时重新输入整数,当输入非二进制时程序终止。 我需要一个认真的帮助 更改代码 由此 if (notBinaryDigit > 0) { System.out.println(value + " is a not a Binary Number."); break; } else {

我对JAVA(顺便说一句,计算机编程)是新手。以下程序检查输入是否为二进制。它应该提示用户重新输入整数,直到输入二进制数。但这个项目却恰恰相反。 它要求我在输入为二进制时重新输入整数,当输入非二进制时程序终止。 我需要一个认真的帮助


更改代码

由此

  if (notBinaryDigit > 0) {
        System.out.println(value + " is a not a Binary Number.");
        break;
    } else {
        System.out.println(value + " is  a  Binary Number.");

    }
对此

 if (notBinaryDigit > 0) {
        System.out.println(value + " is a not a Binary Number.");
        notBinaryDigit--;
    } if(binaryDigit >0 {
        System.out.println(value + " is  a  Binary Number.");
 binaryDigit--;
  break;
    }

它将询问值并判断它是否是二进制的,如果它是二进制的,它将终止更改代码

由此

  if (notBinaryDigit > 0) {
        System.out.println(value + " is a not a Binary Number.");
        break;
    } else {
        System.out.println(value + " is  a  Binary Number.");

    }
对此

 if (notBinaryDigit > 0) {
        System.out.println(value + " is a not a Binary Number.");
        notBinaryDigit--;
    } if(binaryDigit >0 {
        System.out.println(value + " is  a  Binary Number.");
 binaryDigit--;
  break;
    }

它将询问值并告诉是否是二进制的,如果是二进制的,它将终止。 您可以像这样删除Scanner类来运行程序并检查逻辑

公开课考试{

public static void main(String []args){

    int value, userValue=34;
    int binaryDigit = 0, notBinaryDigit = 0;
    value = userValue;

    while (userValue > 0) {
        if ((userValue % 10 == 0) || (userValue % 10 == 1)) {
                binaryDigit++;
            } else {
                notBinaryDigit++;
            }

            userValue = userValue / 10;

        }

        if (notBinaryDigit > 0) {
            System.out.println(value + " is a not a Binary Number.");

        } else {
            System.out.println(value + " is  a  Binary Number.");

        }
}

}由于扫描仪类别的原因,出现错误。 您可以像这样删除Scanner类来运行程序并检查逻辑

公开课考试{

public static void main(String []args){

    int value, userValue=34;
    int binaryDigit = 0, notBinaryDigit = 0;
    value = userValue;

    while (userValue > 0) {
        if ((userValue % 10 == 0) || (userValue % 10 == 1)) {
                binaryDigit++;
            } else {
                notBinaryDigit++;
            }

            userValue = userValue / 10;

        }

        if (notBinaryDigit > 0) {
            System.out.println(value + " is a not a Binary Number.");

        } else {
            System.out.println(value + " is  a  Binary Number.");

        }
}

}答案可能太晚了。但是,如果使用该方法,代码可以简化很多

import java.util.Scanner;

public class MainClass {

    public static void main(String[] args) {
        Scanner scan = new Scanner(System.in);
        while (true) {
            System.out.println("Please enter positive integers: ");
            int userValue = scan.nextInt();
            if (isBinary(userValue)) {
                System.out.println(userValue + " is a Binary Number.");
                break;
            } else {
                System.out.println(userValue + " is  a not Binary Number.");
            }
        }
    }

    public static boolean isBinary(int input) {
        while (input > 0) {
            if ((input % 10 != 0) && (input % 10 != 1)) {
                return false;
            }
            input = input / 10;
        }
        return true;
    }
}

答案可能太晚了。但是,如果使用该方法,代码可以简化很多

import java.util.Scanner;

public class MainClass {

    public static void main(String[] args) {
        Scanner scan = new Scanner(System.in);
        while (true) {
            System.out.println("Please enter positive integers: ");
            int userValue = scan.nextInt();
            if (isBinary(userValue)) {
                System.out.println(userValue + " is a Binary Number.");
                break;
            } else {
                System.out.println(userValue + " is  a not Binary Number.");
            }
        }
    }

    public static boolean isBinary(int input) {
        while (input > 0) {
            if ((input % 10 != 0) && (input % 10 != 1)) {
                return false;
            }
            input = input / 10;
        }
        return true;
    }
}

if(!((用户值%10==0)| |(用户值%10==1))<代码>否定你的语句。你已经通过IDE调试器中的代码了吗?这是开始的地方。如果你不知道如何使用调试器,现在就花时间开始学习。如果你要做任何编码,这是一个必需的技能。我不知道你打算用二进制值来做什么,但是你应该考虑这个bin。进制数可以从一个或多个零开始。如果将值存储在<代码> INT/COD>中,将删除前导零点。还考虑当用户输入一个非常大的二进制数时发生的情况,当解析为<代码> int >代码>超过最大值时,<代码> int /代码>可以表示。也可以考虑您没有处理SCE。nario,用户输入文本而不是数字。最后,一般来说,您应该通过创建简单易懂的小方法将逻辑分解为单元,这将简化代码。
if(!((userValue%10==0)|(userValue%10==1))<代码>否定你的语句。你已经通过IDE调试器中的代码了吗?这是开始的地方。如果你不知道如何使用调试器,现在就花时间开始学习。如果你要做任何编码,这是一个必需的技能。我不知道你打算用二进制值来做什么,但是你应该考虑这个bin。进制数可以从一个或多个零开始。如果将值存储在<代码> INT/COD>中,将删除前导零点。还考虑当用户输入一个非常大的二进制数时发生的情况,当解析为<代码> int >代码>超过最大值时,<代码> int /代码>可以表示。也可以考虑您没有处理SCE。nario,用户输入文本而不是数字。最后,一般来说,您应该通过创建简单易懂的小方法将逻辑分解为多个单元,这将简化代码。由于Scanner类没有错误,您必须导入它firstBrother,我已经导入了它,但由于ide配置的原因,需要一段时间。首先,检查e真正的问题,然后做你想做的事。ide配置导致你的计算机出现问题,与上面的问题无关。由于扫描仪类的原因没有错误,你必须导入它firstBrother,我已经导入了它,但有一段时间由于ide配置的缘故。首先,检查真正的问题是什么,然后做你想做的事。ide config导致您的计算机出现问题,与上述问题无关。谢谢您的帮助!谢谢您的帮助!谢谢您的回答。谢谢您的回答。