【问题标题】:Need help getting user input of min and max需要帮助获取用户输入的最小值和最大值
【发布时间】:2016-10-12 18:15:05
【问题描述】:

你好,这个程序需要帮助,我需要它来向用户询问 2 个整数(Y 和 Z,这是我得到错误的地方),其中一个是最小值,另一个是最大值,我不明白为什么它无法正常运行。

import java.util.Scanner;

public class sampleMethods {

    public static void main(String[] args) {
        printYikes();
        int x = 12;

        x = getAnInt("Please enter an integer min and a max seperated by a space: ",y, z);

        System.out.println("\nThat was a valid Number.");
        System.out.println("You entered " + x + "!");
        System.out.println( "x is " + x );
        x = doubleMyNumber(x);
        System.out.println( "x is " + x );
        x = tripleMyNumber(x);
        System.out.println( "x is " + x );

    }



    static void printYikes() {
        System.out.println("Yikes");
    }

    static int doubleMyNumber(int a) {
        int b = a * 2;
        return b;
    }

    static int tripleMyNumber(int a) {
        int c = a * 3;
        boolean odd = isOddOrEven(c);
        if (odd) {
            System.out.println("Number is Odd!!");
        } else {
            System.out.println("Number is Even!!");
        }
        return c;
    }

    static boolean isOddOrEven (int d) {
        boolean isOdd = false;
        if (d % 2 == 0) {
            isOdd = false;
        } else {
            isOdd = true;
        }
        return isOdd;
    }

    static int getAnInt(String prompt, int min, int max) {
        Scanner keyboard = new Scanner(System.in);
        boolean numberError = false;
        int enteredNumber = 0;
        String enteredString = "";
        do {
            try {
                System.out.print(prompt);
                enteredString = keyboard.nextLine();  //Read into a string
                enteredNumber = Integer.parseInt(enteredString.trim());  //then cast as a integer
                numberError = false;  //if we haven't bailed out, then the number must be valid.
                if (enteredNumber < min || enteredNumber > max) {
                    numberError = true;
                    System.out.println("Your entry: \"" + enteredNumber + "\" is out of range...Please try again");
                }
            } catch(Exception e) {
                System.out.println("Your entry: \"" + enteredString + "\" is invalid...Please try again");
                numberError = true;  //Uh-Oh...We have a problem.
            }
        } while (numberError == true );  //Keep asking the user until the correct number is entered.

        return enteredNumber;

    }
}

【问题讨论】:

    标签: java max min


    【解决方案1】:

    你还没有声明 y,z;

    写在int x = 12之后:

    int y,z;
    

    【讨论】:

      【解决方案2】:

      函数int getAnInt(String prompt, int min, int max) 需要三个参数:

      • prompt - 询问用户的字符串。
      • min - 您可以接受的最小值。
      • max - 您可以接受的最大值。

      它返回一个int,保证在minmax之间。这就是函数的作用。而已;一点也不差。你不能用它来请求两个用空格隔开的数字。

      听起来您曾经有一个要求单个值的现有程序,具有任意 minmax 值(0 和 100?1 和 10?)。

      现在你想改变这个程序,首先询问最小值和最大值,然后然后做前面的处理。您需要向用户询问另外两个数字 - 这些数字还需要指定 minmax

      int x = 12; 替换为:

          int min, max, x;
          min = getAnInt("Please enter an integer minimum between 0 and 1000000: ", 0, 1000000);
          max = getAnInt("Please enter an integer maximum larger than minimum and less than 1000001: ", min, 1000001);
      
          x = getAnInt("Please enter an integer x between minimum and maximum: ",min, max);
      

      【讨论】:

        猜你喜欢
        • 2018-03-03
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2020-08-26
        • 2015-02-02
        • 1970-01-01
        • 1970-01-01
        • 2020-08-16
        相关资源
        最近更新 更多