【发布时间】: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;
}
}
【问题讨论】: