gpt4 book ai didi

来自扫描器的 Java 循环/用户输入

转载 作者:搜寻专家 更新时间:2023-11-01 01:54:16 24 4
gpt4 key购买 nike

制作一个简单的篮球程序,我询问主队名称、本赛季有多少场比赛,然后循环询问下一场球队比赛。基本上,当我启动 do-while 循环时,它运行良好,除非用户输入例如“俄亥俄州”。例如,输出将从“剩余 6 场比赛”变为“剩余 4 场比赛”。通常它只会问对手?,然后减少一场比赛。

我怎样才能使 2 个单词的篮球队名称不递减两次?

import java.util.Scanner;

public class Basketball2 {


public static void main(String[] args) throws java.io.IOException {
Scanner scanInput = new Scanner(System.in);
String sHomeTeam;
String sAwayTeam;
int iNumGames;
int iGamesLeft = 0;

System.out.println("Enter home team's name: ");
sHomeTeam = scanInput.nextLine();
System.out.println(sHomeTeam);

System.out.println("How many games are in the home team's basketball season?");
iNumGames = scanInput.nextInt();
System.out.println(iNumGames);

//start looping
do {
System.out.println("Enter opponent team's name: ");
sAwayTeam = scanInput.next();
System.out.println(sAwayTeam);
iGamesLeft = --iNumGames;
System.out.println("There are " + iGamesLeft + " games left in the basketball season");


}//end do
while(iGamesLeft > 0);

最佳答案

替换:sAwayTeam = scanInput.next();sAwayTeam = scanInput.nextLine(); 循环两次的原因是因为 scanInput.next( ); 一次只返回一个标记(例如单词)。当您输入两个单词时,它不需要在第二次继续之前从用户那里接收更多输入,因为它已经有另一个单词要返回。因此是双循环。

您还需要注意调用 nextInt() 的代码行。这与 next() 方法类似,但是它扫描的不是标记(单词),而是一个字符作为 int。试试这个:在 iNumGames = scanInput.nextInt(); 之后放置 scanInput.nextLine(); 这应该会清除 scanInput 中任何使其跳过的内容。注意:由于您的代码编写方式,这只会读取一个字符。如果您需要读取多个字符,您应该使用 nextLine() 并将其值分配给一个整数。

关于来自扫描器的 Java 循环/用户输入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14720662/

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