Java循环与零因子

Java循环与零因子,java,Java,我正在创建一个程序,将计算两个数字。我的问题是0将是程序的非法输入,但不是再次要求两个数字 程序继续运行,没有给出错误,或者在输入零时给出任何答案,假设它要求用户再次输入两个不同的数字 我已经完成了所有的代码,它大部分工作正常,没有明显的错误 import java.util.*; import java.util.Scanner.*; public class MinilabLoopLogic { public static void main(String[ ] args)

我正在创建一个程序,将计算两个数字。我的问题是0将是程序的非法输入,但不是再次要求两个数字

程序继续运行,没有给出错误,或者在输入零时给出任何答案,假设它要求用户再次输入两个不同的数字

我已经完成了所有的代码,它大部分工作正常,没有明显的错误

import java.util.*;
import java.util.Scanner.*;

public class MinilabLoopLogic
{
    public static void main(String[ ] args)
    {    
        int num1, num2, divisor, total;

        Scanner kb = new Scanner(System.in);  //you do it!

        System.out.print("Please enter 2 integers (separated by spaces): ");
        num1 = kb.nextInt();
        num2 = kb.nextInt();

        System.out.println("\n\nThis program will generate numbers BETWEEN "+ num1 + " " + num2);

        System.out.println("\nPlease enter the integer your output should be divisible by: ");
        divisor = kb.nextInt();
        while (divisor == 0)
        {
            divisor = kb.nextInt();
        }

        System.out.println("\n\n----------------------------------------");
        //Be able to handle 1st number smaller 
        //   OR 2nd number smalle
        //Use the modulus operator to check if a number is divisible 
        if (num1 < num2)
        {
            for (total = num1+1; total < num2; total++ )
            {
                if (total % divisor == 0)
                { 
                    System.out.println(total);
                }
            }  
        }
        else
        {            
            for (total = num1 - 1; total > num2; total--)
            {
                if (total % divisor == 0)
                {
                    System.out.println(total);
                }
            }
        }
    }

}//end main()
import java.util.*;
导入java.util.Scanner.*;
公共类小型逻辑
{
公共静态void main(字符串[]args)
{    
整数num1,num2,除数,总计;
Scanner kb=新的扫描仪(System.in);//您可以这样做!
System.out.print(“请输入2个整数(用空格分隔):”;
num1=kb.nextInt();
num2=kb.nextInt();
System.out.println(“\n\n此程序将生成“+num1+”“+num2”之间的数字);
System.out.println(“\n请输入输出应可被整除的整数:”);
除数=kb.nextInt();
while(除数=0)
{
除数=kb.nextInt();
}
System.out.println(“\n\n--------------------------------------------------------”);
//能够处理较小的第一个数字
//或者第二个号码smalle
//使用模运算符检查数字是否可除
如果(num1num2;总计--)
{
if(总除数%=0)
{
系统输出打印项次(总计);
}
}
}
}
}//尾干管()

问题在于while循环查找除数:

       System.out.println("\nPlease enter the integer your output should be divisible by: ");
            divisor = kb.nextInt();  // gets your divisor
            while (divisor == 0)  //if it is illegal, e.g. 0
            {
                divisor = kb.nextInt(); // waits for more divisor input
            }
您应该输出一个字符串来告诉用户问题是什么。说:

            divisor = kb.nextInt();  // gets your divisor
            while (divisor == 0)  //if it is illegal, e.g. 0
            {
                System.out.println("\nYou can't divide by 0. Try again!: ");
                divisor = kb.nextInt(); // waits for more divisor input
            }

此外,如果您希望他们必须重新输入
num1
num2
,则必须在while循环中进行扫描仪输入。

您的问题在于while循环查找除数:

       System.out.println("\nPlease enter the integer your output should be divisible by: ");
            divisor = kb.nextInt();  // gets your divisor
            while (divisor == 0)  //if it is illegal, e.g. 0
            {
                divisor = kb.nextInt(); // waits for more divisor input
            }
您应该输出一个字符串来告诉用户问题是什么。说:

            divisor = kb.nextInt();  // gets your divisor
            while (divisor == 0)  //if it is illegal, e.g. 0
            {
                System.out.println("\nYou can't divide by 0. Try again!: ");
                divisor = kb.nextInt(); // waits for more divisor input
            }

此外,如果您希望他们必须重新输入
num1
num2
,则必须在while循环中进行扫描仪输入。

您在编辑中添加了以下内容:

程序继续运行,没有给出错误,或者在输入零时给出任何答案,假设它要求用户再次输入两个不同的数字

这是因为当输入零时,您只需返回以获取另一个值,而不需要写入任何新的提示文本


它也只得到一个新的除数,而不是“两个不同的数”。如果您返回到“请输入2个整数”之前,它实际上会再次提示输入所有3个数字。

您在编辑中添加了以下内容:

程序继续运行,没有给出错误,或者在输入零时给出任何答案,假设它要求用户再次输入两个不同的数字

这是因为当输入零时,您只需返回以获取另一个值,而不需要写入任何新的提示文本



它也只得到一个新的除数,而不是“两个不同的数”。如果你回到“请输入2个整数”之前,它实际上会再次提示输入所有3个数字。

问题是什么?你能不能在运行部分进行扩展?我在检查代码时没有发现任何问题,所以我运行了它,它对我来说很好。如果我输入一个零除数,它会等待我输入一个新的数字,一旦我输入了一个非零的数字,它会给出结果并退出。如果你修正(对齐)所有缩进,代码可能会更容易阅读。是的,我不想进入样式问题,但这是一个特别糟糕的缩进。良好的缩进使代码更具可读性,无论是对其他人,还是对您来说,当您在一年后返回到它时,都不知道它会做什么。:-)缩进修复的良好开端。现在执行其余操作,例如,第一个
if(total%divisior==0)
是在
for
循环的内部还是外部?当然是在里面,但缩进似乎是另一种说法。问题是什么?你能不能在运行部分进行扩展?我在检查代码时没有发现任何问题,所以我运行了它,它对我来说很好。如果我输入一个零除数,它会等待我输入一个新的数字,一旦我输入了一个非零的数字,它会给出结果并退出。如果你修正(对齐)所有缩进,代码可能会更容易阅读。是的,我不想进入样式问题,但这是一个特别糟糕的缩进。良好的缩进使代码更具可读性,无论是对其他人,还是对您来说,当您在一年后返回到它时,都不知道它会做什么。:-)缩进修复的良好开端。现在执行其余操作,例如,第一个
if(total%divisior==0)
是在
for
循环的内部还是外部?当然是在内部,但缩进似乎是另一种说法。他的代码看起来非常好!没问题。您更改了什么?嗯,当您删除提示文本时,用户如何知道输入除数?没有提示,真的吗?怪人。s/再试一次/不管你的船怎么漂/我知道我的错在哪里了,谢谢你!他的密码看起来很好!没问题。您更改了什么?嗯,当您删除提示文本时,用户如何知道输入除数?没有提示,真的吗?怪人。s/再试一次/不管你的船怎么漂/我知道我的错在哪里了,谢谢你!