我有一个任务,我需要用一个java程序(我用的是Eclipse)做一个轮盘赌的程序。这个程序有一个要求,它规定了 给定以下方法 标题,你必须写出相应的 定义 的int返回方法,读取、验证并返回一个要投注的数字,这个数字必须在0和36之间。(标题是 公共静态 int getNumber(Scanner stdIn)). 我遇到的问题是 while 语句,因为它不能识别 greaterless than 符号。我该如何解决这个问题?
import java.util.Scanner;
public class Program08
{
public static void main(String[]args)
{
welcome();
Scanner stdIn = new Scanner(System.in);
int number;
number = getNumber(stdIn);
}
public static void welcome()
{
System.out.println("Welcome to Roulette!");
System.out.println("Number bets payout: 35:1");
}
public static int getNumber(Scanner stdIn)
{
do
{
//int play;
System.out.println("Enter the number to bet on [0-36]: ");
//play = stdIn.nextInt;
}
while (stdIn<0 || stdIn>36);
}
}//end of program
你的程序中存在编译错误。下面是正确编译的代码。
import java.util.*;
public class Program08{
public static void main(String[] args){
welcome();
Scanner stdIn = new Scanner(System.in);
int number;
number = getNumber(stdIn);
}
public static void welcome(){
System.out.println("Welcome to Roulette!");
System.out.println("Number bets payout: 35:1");
}
public static int getNumber(Scanner stdIn){
int play = 0;
do{
System.out.println("Enter the number to bet on [0-36]: ");
play = stdIn.nextInt();
} while (play < 0 || play > 36);
return play;
}
}
有哪些修复措施。
getNumber()
申报 play
(用户选择的整数变量) 在do-while循环之外。这样做是为了让do-while语句的while部分能够访问该变量。Scanner
对象(stdIn
),从用户那里读取一个数字,并将其存储在。play
. 这样就可以了。play = stdIn.nextInt()
(假设用户输入的是一个数字,而不是一些会产生错误的零散文字,或者更准确的说是: 闹事).play
在do-hilestatement的while部分。你写的是什么?stdIn < 0
从根本上说是错误的,因为你是在比较一个。Scanner
对象,这不是一个数字,而是一个数字。想象一下,用一个Scanner
有另一个对象 Person
. 你能不能说,乔治(一个例子。Person
)大于零?显然你不能。你可以说,虽然乔治的年龄(这是一个数字)是大于零的。George.age > 0
.这是因为你必须调用方法 nextInt()
来获取实际值。
所以在你的循环之外,声明一个 int input
,在循环结束时设置,然后检查。
int input;
do {
//... stuff
input = stdIn.nextInt();
} while(input < 0 || input > 36);