Java 检查2个整数之间的数字
我正在为即将到来的Java测试做修订,我被一个部分卡住了,无法解决它 Q:取2个整数,从整数A到整数B,如果X可以被6或5整除,则显示X,但不能同时被6或5整除,并在每10个数字后打印一行 以下是我目前的代码:Java 检查2个整数之间的数字,java,loops,netbeans,integer,Java,Loops,Netbeans,Integer,我正在为即将到来的Java测试做修订,我被一个部分卡住了,无法解决它 Q:取2个整数,从整数A到整数B,如果X可以被6或5整除,则显示X,但不能同时被6或5整除,并在每10个数字后打印一行 以下是我目前的代码: public static void main(String[] args) { // TODO code application logic here Scanner sc = new Scanner(System.in); int numOne = sc.ne
public static void main(String[] args) {
// TODO code application logic here
Scanner sc = new Scanner(System.in);
int numOne = sc.nextInt();
int numTwo = sc.nextInt();
int line = 1;
while (numTwo > numOne) {
if (line%11==0){
System.out.println("");
}
if ((numOne % 5 == 0) && (numOne % 6 != 0)) {
System.out.print(numOne + " ");
line++;
}
if ((numOne % 6 == 0) && (numOne % 5 != 0)) {
System.out.print(numOne + " ");
line++;
}
}
numOne++;
}
您的代码给出了一个无限循环,因为
numOne
在while循环之外递增。只需将它移到内部,它似乎就能正常工作。您的代码会产生一个无限循环,因为numOne
在while循环之外递增。只需将其移到内部,它似乎就能正常工作。将代码更改为
while (numTwo > numOne) {
if (line%11==0){
System.out.println("");
}
if ((numOne % 5 == 0) && (numOne % 6 != 0)) {
System.out.print(numOne + " ");
line++;
}
if ((numOne % 6 == 0) && (numOne % 5 != 0)) {
System.out.print(numOne + " ");
line++;
}
numOne++;
}
移动numOne++代码>内部循环。您没有更改循环内的任何变量,因此将得到一个无限循环将代码更改为
while (numTwo > numOne) {
if (line%11==0){
System.out.println("");
}
if ((numOne % 5 == 0) && (numOne % 6 != 0)) {
System.out.print(numOne + " ");
line++;
}
if ((numOne % 6 == 0) && (numOne % 5 != 0)) {
System.out.print(numOne + " ");
line++;
}
numOne++;
}
移动numOne++代码>内部循环。您不需要更改循环内的任何变量,因此将得到一个无限循环您的增量在while循环外。您需要在循环体的末尾增加numOne
目前您有一个无限循环。因为numOne从不改变,numTwo总是比numOne更伟大
同时使用排他或^
,这将使这个问题简单得多:
您知道增量在while循环之外。您需要在循环体的末尾增加numOne
目前您有一个无限循环。因为numOne从不改变,numTwo总是比numOne更伟大
同时使用排他或^
,这将使这个问题简单得多:
你也可以写:
if ((numOne % 5 == 0 || numOne % 6 == 0) && numOne % 30 != 0)
你也可以写:
if ((numOne % 5 == 0 || numOne % 6 == 0) && numOne % 30 != 0)
非常感谢。我不知道我把增量放在外面了谢谢!我没有意识到我把增量留在了外面