将数字转换为单词,如果输入无效,则重新执行



我试图仅将数字转换为 0-100 的单词,如果程序不符合条件而不退出程序,我该如何重新执行程序。 如果我输入 55,我想输出 55,但如果我输入的数字不在 0-100 中,它将输出"您应该输入 0-100 只能重试",然后它将自动转到"仅输入 0-100 之间的数字">

package convertnumbertowords;
import java.util.Scanner;
public class ConvertNumberToWords {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.println("Input number between 0-100 only ");
int num1 = sc.nextInt();
while (num1 <= -1 && num1 >= 101 ){
if(num1 <= 100 && num1 >= 0){
System.out.println("The "+num1+" in words is "+ 
Integer.toString(num1));
}
else{
System.out.println("You should input 0-100 only Try Again");
}
}
}
}

我的建议是将单词保留在一个数组中,将其分为 1 和 10。 例如:

String ones[] = { " ", " One", " Two", " Three", " Four", " Five", " Six", " Seven", " Eight", " Nine", " Ten"," Eleven", " Twelve", " Thirteen", " Fourteen", "Fifteen", "Sixteen", " Seventeen", " Eighteen"," Nineteen" };

我之所以将 ones[0] 保留为空,所以很容易理解,ones[1] = one

String tens[] = { " ", " ", " Twenty", " Thirty", " Forty", " Fifty", " Sixty", "Seventy", " Eighty", " Ninety" };

我将 0、10 保留为空,因为我在那些中声明了它。

根据我的例子,如果它小于这个值,只需使用 one[number]。如果它大于 19 ,我建议将其除以 10 以获得其 10 字的单词,然后将数字与 10 进行模 (%( 以获得它的 1 个单词。万事如意,我的建议可能不是完美的,但希望它能给你一些想法

要保持输入正确,您首先输入 ->检查它是否错误 -> 如果是,则再次提示用户,否则转到下一步。在代码中,它将如下所示

// Ask for input
System.out.println("Input number between 0-100 only ");
int num = sc.nextInt();
// Check if input is incorrect
while (num > 100 || num < 0) {
// If input is incorrect prompt user again
System.out.println("You should input 0-100 only Try Again");
// Update num and check until unser enters a num within the range
num = sc.nextInt();  
}

最新更新