gpt4 book ai didi

java - 即使输入数字出现在随机给定数字中,是什么导致该程序返回 false?

转载 作者:行者123 更新时间:2023-12-01 20:23:46 25 4
gpt4 key购买 nike

我正在编写一个java程序,要求用户输入0-9之间的数字,生成800到9999之间的随机数,并返回用户输入的数字是否在生成的数字中。我不确定为什么这不起作用,但它似乎只有在输入的数字出现多次时才起作用。例如:随机数 = 8445 输入:4 返回 true。随机数 8445 输入:5 返回 false。我相信问题出在 containsDigits 方法的 for while 循环/if 语句中,但经过反复试验,我似乎无法弄清楚。

import java.util.Scanner;
public class Lab12 {

public static void main(String[]args){
Random rand = new Random();
//(max - min +1 )+ min (creates range)
int a = rand.nextInt(9999-800+1)+800;
Scanner scanner = new Scanner(System.in);

System.out.println("Enter an integer between 0 and 9");
int b = scanner.nextInt();

if (b>9||b<0){
System.out.println("Your number is invalid! Enter another one: ");
b=scanner.nextInt();
}

boolean flag = containDigits(a,b);
System.out.println(a+ " contains "+b+": "+flag);

}
public static boolean containDigits (int a, int b){
boolean flag= false;
while (a > 0){
if (a % 10 == b){
flag = true;
a=a/10;
break;

}
else {
flag=false;
break;
}
}
return flag;

}

}

最佳答案

当您在循环内(在 if 和 else block 内)使用 break 时,您将在第一次迭代中结束它。

关于java - 即使输入数字出现在随机给定数字中,是什么导致该程序返回 false?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58924626/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com