Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/392.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何要求用户重新输入他们的选择?_Java - Fatal编程技术网

Java 如何要求用户重新输入他们的选择?

Java 如何要求用户重新输入他们的选择?,java,Java,如果用户输入的数字低于10或高于999,我知道如何显示错误消息,但我如何编码以确保程序不会在用户输入低于10或高于999的数字后结束,并给他们第二次机会反复输入有效输入,直到他们给出正确的输入 import java.util.Scanner; public class Ex1{ public static void main(String args[]){ java.util.Scanner input = new java.util.Scanner(System.in); S

如果用户输入的数字低于10或高于999,我知道如何显示错误消息,但我如何编码以确保程序不会在用户输入低于10或高于999的数字后结束,并给他们第二次机会反复输入有效输入,直到他们给出正确的输入

import java.util.Scanner; 

public class Ex1{ 

public static void main(String args[]){ 

java.util.Scanner input = new java.util.Scanner(System.in); 

System.out.print("Enter an integer between 10 and 999: "); 
    int number = input.nextInt(); 


    int lastDigit = number % 10; 

    int remainingNumber = number / 10; 
    int secondLastDigit = remainingNumber % 10; 
    remainingNumber = remainingNumber / 10; 
    int thirdLastDigit = remainingNumber % 10; 

int sum = lastDigit + secondLastDigit + thirdLastDigit; 

if(number<10 || number>999){
    System.out.println("Error!: "); 
}else{
    System.out.println("The sum of all digits in " +number + " is " + sum);
}
}
}
import java.util.Scanner;
公共类Ex1{
公共静态void main(字符串args[]){
java.util.Scanner输入=新的java.util.Scanner(System.in);
System.out.print(“输入一个介于10和999之间的整数:”);
int number=input.nextInt();
int lastDigit=数字%10;
整数剩余数=数/10;
int secondLastDigit=remainingNumber%10;
剩余数量=剩余数量/10;
int thirdLastDigit=remainingNumber%10;
整数和=最后一位数+第二最后一位数+第三最后一位数;
如果(999号){
System.out.println(“错误!:”;
}否则{
System.out.println(“所有数字在“+number+”中的总和为“+sum”);
}
}
}

您需要使用循环,它基本上是围绕代码循环,直到满足特定条件

一种简单的方法是使用
do/while
循环。在下面的例子中,我将使用所谓的“无限循环”。也就是说,它将永远继续循环,除非有什么东西打破它

import java.util.Scanner;

class Main {
    public static void main(String[] args) {

        Scanner scanner = new Scanner(System.in);

        int num;

        // Start a loop that will continue until the user enters a number between 1 and 10
        while (true) {

            System.out.println("Please enter a number between 1 - 10:");
            num = scanner.nextInt();

            if (num < 1 || num > 10) {
                System.out.println("Error: Number is not between 1 and 10!\n");
            } else {
                // Exit the while loop, since we have a valid number
                break;
            }
        }

        System.out.println("Number entered is " + num);

    }
}

试试这个,我只是在代码中包含while循环,它会很好地工作

public static void main(String[] args) {

    Scanner input = new Scanner(System.in);

    int number = askInput(input); 

    while(number<10 || number>999) {
        System.out.println("Sorry Try again !");
        number = askInput(input);
    }
    int lastDigit = number % 10; 

    int remainingNumber = number / 10; 
    int secondLastDigit = remainingNumber % 10; 
    remainingNumber = remainingNumber / 10; 
    int thirdLastDigit = remainingNumber % 10; 

    int sum = lastDigit + secondLastDigit + thirdLastDigit; 

    if(number<10 || number>999){
        System.out.println("Error!: "); 
    }else{
        System.out.println("The sum of all digits in " +number + " is " + sum);
    }
}

private static int askInput(Scanner input) {
    int number = input.nextInt();
    return number;
}
publicstaticvoidmain(字符串[]args){
扫描仪输入=新扫描仪(System.in);
整数=askInput(输入);
while(999号){
System.out.println(“对不起,再试一次!”);
数字=askInput(输入);
}
int lastDigit=数字%10;
整数剩余数=数/10;
int secondLastDigit=remainingNumber%10;
剩余数量=剩余数量/10;
int thirdLastDigit=remainingNumber%10;
整数和=最后一位数+第二最后一位数+第三最后一位数;
如果(999号){
System.out.println(“错误!:”;
}否则{
System.out.println(“所有数字在“+number+”中的总和为“+sum”);
}
}
专用静态输入askInput(扫描仪输入){
int number=input.nextInt();
返回号码;
}

只需将整个代码放入
while
循环中。你可以翻阅书本和教室材料,研究循环的主题。
while
循环通常会更容易(IMHO),避免了
while true
public static void main(String[] args) {

    Scanner input = new Scanner(System.in);

    int number = askInput(input); 

    while(number<10 || number>999) {
        System.out.println("Sorry Try again !");
        number = askInput(input);
    }
    int lastDigit = number % 10; 

    int remainingNumber = number / 10; 
    int secondLastDigit = remainingNumber % 10; 
    remainingNumber = remainingNumber / 10; 
    int thirdLastDigit = remainingNumber % 10; 

    int sum = lastDigit + secondLastDigit + thirdLastDigit; 

    if(number<10 || number>999){
        System.out.println("Error!: "); 
    }else{
        System.out.println("The sum of all digits in " +number + " is " + sum);
    }
}

private static int askInput(Scanner input) {
    int number = input.nextInt();
    return number;
}