gpt4 book ai didi

java - 方法(do 循环)中的扫描仪不接受大于/小于符号

转载 作者:行者123 更新时间:2023-12-02 08:38:53 26 4
gpt4 key购买 nike

我有一个作业,需要使用 java 程序(我使用 Eclipse)制作轮盘赌程序。该程序有一个要求:给定以下方法 heading,您必须为 int 返回方法编写相应的定义,该方法读取、验证并返回要下注的数字on,必须介于 0 和 36 之间。(标题为 public static int getNumber(Scanner stdIn))。我遇到的问题是 while 语句,因为它无法识别大于/小于符号。我该如何解决这个问题?

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

修复了什么:

  1. getNumber()声明play (整数变量,其中您将把用户的选择存储在do-while 循环。这样做是为了让 do-while 语句的 while 部分可以访问该变量。
  2. 使用Scanner对象( stdIn )从用户读取数字并将其存储在 play 。这样做是这样的:play = stdIn.nextInt() (假设用户将输入一个数字而不是一些会产生错误或更准确地说引发异常的任意文本。
  3. 比较 play 的值在 do-while 的 while 部分陈述。你写的,stdIn < 0从根本上来说是错误的,因为您正在比较 Scanner对象(不是数字)到数字。想象一下代替一个 Scanner有另一个对象,比如 Person 。你能说 George ( Person 的一个实例)大于零吗?显然你不能。你可以假设乔治的年龄(数字)大于零,George.age > 0 .

关于java - 方法(do 循环)中的扫描仪不接受大于/小于符号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61512046/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com