使用扫描仪输入进行for循环

时间:2019-02-11 16:08:39

标签: java

我正在尝试制作一种自动柜员机。我希望程序执行以下操作:如果用户输入数字,则数字将乘以12。

我已经有以下代码:

import java.util.Scanner;

public class DisplayMultiples {

    public static void main(String args[]) {


        Scanner keyboardInput = new Scanner(System.in);
        System.out.println("Enter a number between 1 and 12 ");
        keyboardInput.nextLine();  

        int b = 12;

        if() {
        for (int i = 1; i < b; i++) {

            System.out.println(i*b);


            }
        else {
             System.out.println("Error, this value is never used");
                }
        }
    }

3 个答案:

答案 0 :(得分:1)

  1. 将输入内容转换为数字。
  2. 如果输入的不是数字,则显示错误消息并退出。
  3. 如果输入是数字,则将其乘以12,显示结果,然后退出。

答案 1 :(得分:0)

最简单的方法是从int获取一个Scanner,然后检查它是否在1到12之间,如果是,则将其乘以12。

Scanner keyboardInput = new Scanner(System.in);
System.out.println("Enter a number between 1 and 12 ");
int number = keyboardInput.nextInt();
if (number > 0 && number < 13) {
    System.out.println(number * 12);
} else {
    System.out.println("Error, this value is never used");
}

请注意,由于您很可能是初学者,因此在控制台中输入int以外的任何内容都会导致错误,但我认为这对您而言并非完全必要。如果是这样,请继续阅读try...catch

答案 2 :(得分:-1)

这样可以避免输入非数字时出现异常。

    Scanner keyboardInput = new Scanner(System.in);
    System.out.println("Enter a number between 1 and 12 ");
    String inpStr = keyboardInput.nextLine();
    int b = 12;
    int inpVal = -1;

    try {
        inpVal = Integer.parseInt(inpStr);
    } catch (NumberFormatException nfe) {

    }

    if (inpVal >= 1 && inpVal <= 12) {
        System.out.println(inpVal * b);
    } else {
        System.out.println("Error, this value is never used");
    }