gpt4 book ai didi

java - 使用方法重复查找一个整数

转载 作者:行者123 更新时间:2023-11-30 03:08:24 25 4
gpt4 key购买 nike

你好,我的目的是这样的:编写一个只能接受 10 到 50 之间的值的方法。

示例执行:
输入 10 到 50 之间的数字
输入数字:5
输入一个10 到 50 之间的数字
输入数字:12
输入数字:12。
输入数字:0
再见

所以你可以看到它仅在用户输入 0 时完成。当数字在 10 到 50 之间时,它会说不同的事情。我再次删除了我的代码并开始,但我在某些点上陷入困​​境,然后我放弃了。我的最终代码是:

import java.util.Scanner;
public class A{

public static void main(String[] args) {

Scanner scan = new Scanner(System.in);

System.out.println("Enter case number: ");
int caseVal = scan.nextInt();

switch(caseVal){

case 1:

System.out.println("Enter a number between 10 and 50");
System.out.println("Enter a number: ");
int num = scan.nextInt();
betweenMethod(num);
if(num == 0){
System.out.println("Good Bye");
break;
}
while(num != 0){
betweenMethod(num);

}

break;

case 2:

System.out.println("Enter a number to display its divisors: ");
int x = scan.nextInt();
System.out.println("The divisors of " + x + " are:");
divisorsMethod(x);

break;
}

scan.close();

}

public static void divisorsMethod(int a){

if(a <= 0)
System.out.println("The number should be greater than 0");
else{

for(int b = 1; b <= a; b++){

if(a % b == 0 && b != a)
System.out.print(b + ", ");

else if(b == a)
System.out.println(b);
}
}
}

public static void betweenMethod(int a){
Scanner inputscan = new Scanner(System.in);

if(a >= 10 && a <= 50){
System.out.println("Enter a number:");
a = inputscan.nextInt();
}
else if((a < 10 || a > 50) && a != 0){
System.out.println("Enter a number between 10 and 50");
System.out.println("Enter a number:");
a = inputscan.nextInt();

}
else{
System.out.println("Good Bye");
}

inputscan.close();

}


}

抱歉未删减版本。这是情况 1。每次我尝试时都无法完全正常工作。如果有人可以提供帮助,我将不胜感激。如果我没有在规则中写下这个问题,我很抱歉。(对语法感到抱歉好吧)


这就是我被困住的地方=当我输入0时,它没有说再见并结束循环。这就是我需要帮助的地方。


对于每个需要答案的人:
我想出了该怎么做。基本上我们说它不等于零,对吗?我编写了一个新方法(在最后一次输入扫描变量之后)检查数字是否为零并打印出再见。因此,通过这种方式,它打印出再见,然后开始。但它不能做任何其他事情,因为我们说 while 不等于 0。无论如何,这是一个解决方案。

最佳答案

不要close() System.in

当您调用 inputscan.close() 时,会关闭底层 InputStream,即 System.in

返回值

您的方法应该提示在两个值之间进行输入并返回单个值。此外,您还可以将Scanner移动到static(或class)字段。类似的东西

private static Scanner inputscan = new Scanner(System.in);
public static int betweenMethod(final int a, final int b) {
int min = Math.min(a, b);
int max = Math.max(a, b);
while (true) {
System.out.printf("Please enter a number between %d and %d%n", min, max);
int in = inputscan.nextInt();
if ((in == 0) || (in >= min && in <= max)) {
return in;
}
}
}

基元1是传递值

循环时,您需要将回调的结果分配给您的值。比如,

int num = betweenMethod(10, 50);
while (num != 0) {
System.out.printf("Number Entered: %d.%n", num);
num = betweenMethod(num);
}
System.out.println("Good Bye");
break;

1 Java 中的其他内容。

关于java - 使用方法重复查找一个整数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34187472/

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