2016-06-12 66 views
-1

你好需要幫助這個程序,我需要它來詢問用戶2個整數(Y和Z這是我得到我的錯誤),其中一個將是一個min和另一個一個最大值,我不明白爲什麼它不能正常運行。需要幫助獲取用戶輸入的最大和最小值

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; 

    } 
} 

回答

0

您還沒有聲明y,z;

寫這篇文章後int x = 12

int y,z; 
0

功能int getAnInt(String prompt, int min, int max)需要三個參數:

  • prompt - 字符串詢問用戶。
  • min - 您接受的最小值。
  • max - 您將接受的最大值。

它返回一個int,保證在minmax之間。功能就是這樣。而已;無所不及。你不能用它來請求由空格分隔的兩個數字。

聽起來像你曾經有一個現有的程序,要求一個單一的值,任意minmax值(0和100?1和10?)。

現在要更改此程序來第一要求的最小值和最大值,並然後做以前的處理。您需要再向用戶索要兩個號碼 - 這些號碼還需要指定minmax

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); 

替換爲int x = 12;