Java 使用方法重复查找整数
你好,我的目的是: 编写一个只能接受10到50之间的值的方法。Java 使用方法重复查找整数,java,methods,Java,Methods,你好,我的目的是: 编写一个只能接受10到50之间的值的方法。示例执行:输入一个10到50之间的数字输入一个数字:5输入一个10到50之间的数字输入一个数字:12输入一个数字:0再见,这样您就可以看到它只在用户输入0时结束。它说当数字介于10和50之间或不在10和50之间时,会发生不同的事情。我再次删除代码并开始,但我在某些方面遇到了困难,于是放弃了。我的最终代码是: import java.util.Scanner; public class A{ public static void ma
示例执行:
输入一个10到50之间的数字
输入一个数字:5
输入一个10到50之间的数字
输入一个数字:12
输入一个数字:0
再见
,这样您就可以看到它只在用户输入0时结束。它说当数字介于10和50之间或不在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();
}
}
import java.util.Scanner;
公共A类{
公共静态void main(字符串[]args){
扫描仪扫描=新扫描仪(System.in);
System.out.println(“输入案例编号:”);
int caseVal=scan.nextInt();
开关(caseVal){
案例1:
System.out.println(“输入一个介于10和50之间的数字”);
System.out.println(“输入一个数字:”);
int num=scan.nextInt();
中间方法(num);
如果(num==0){
System.out.println(“再见”);
打破
}
while(num!=0){
中间方法(num);
}
打破
案例2:
System.out.println(“输入一个数字以显示其除数:”);
int x=scan.nextInt();
System.out.println(“x+的除数为:”);
除数法(x);
打破
}
scan.close();
}
公共静态无效因子方法(INTA){
如果(a)不关闭()
System.in
调用inputscan.close()
时,将关闭基础InputStream
,即System.in
返回值
您的方法应该提示在两个值之间输入并返回单个值。此外,您可以将扫描仪
移动到静态
(或类)字段。类似于
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 <强>和<强> > java中的其他所有东西。< /p>我删除C++标签,因为这与C++无关。删除<代码>输入扫描。。您在哪里遇到了问题?您需要什么帮助?因此,您选择案例1,它会提示您输入一个数字,并将您带到中间方法,该方法静默等待您输入另一个数字,检查原始数字,提示您输入第三个数字-并将其丢弃-然后返回案例1并进入无限while循环在原始“num”编号上的中间方法(从未更改)。是的,它没有按照描述“完全”工作。好的,我删除了它,它也删除了错误。谢谢,但是现在除了0之外,所有链接都可以正常工作。当我输入0时,它不会说再见并结束它。
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;