gpt4 book ai didi

java - 按 Enter 键后命令提示符卡住,循环无效

转载 作者:行者123 更新时间:2023-12-02 06:11:34 26 4
gpt4 key购买 nike

我目前正在制作一个程序,允许您选择 4 个选项之一,为了正确执行此操作,我必须使用循环。这个简单程序的要点是允许用户从 4 个选项中选择 1 个:

1 - 将百分比设置为平均值2 - 输入成绩(并取输入成绩的平均值)3 - 获取平均值(我假设输入平均成绩和平均百分比)4 - 退出

目前,我没有遇到编译错误并且能够运行该程序。每当我输入 1 并按 Enter 时,由于某种原因,数字会输入,但随后它只是一个空格,我必须按 CTRL-C 才能解冻它。我也不知道如何让“while ( choice != 1); ”行正确执行。

我需要让程序循环,允许用户根据需要多次执行每个选项,直到按 4 退出,所以我使用哨兵控制的循环。这是我的代码,我是初学者,所以我可能还没有完成整个“循环”过程。谢谢!

import java.util.Scanner;

public class ExerciseThree
{
public static void main ( String[] argsv )
{

float percent = 0;
double grade = 0;
double totalAvg = 0;
double total = 0;
double gradeAvg = 0;

int gradeCounter = 0;
int quit;
int choice;
int choiceOne;


Scanner input = new Scanner (System.in);

System.out.println( "Please choose one of the following: \n 1 - Set percentage of total for new grades \n 2 - Enter new grades \n 3 - Get average \n 4 - Quit ");
choice = input.nextInt();


while ( choice != 4 );

switch ( choice )
{

case 1:

if( choice == 1 ) {
System.out.println( "Enter a percentage to multiply by" );
percent = input.nextFloat();

break;
}

case 2:

if ( choice == 2 ) {
System.out.println( "Enter grades" );
grade = input.nextDouble();
total = total + grade;
gradeCounter = gradeCounter + 1;
gradeAvg = (double) total / gradeCounter;
break;
}



case 3:

if ( choice == 3 ) {
System.out.println( "You have chosen to get the average" );
totalAvg = totalAvg + percent * grade;
totalAvg = input.nextDouble();
break;
}


default:

if ( choice == 4 ){
System.out.println( "You have chosen to quit" );
quit = input.nextInt();
break;
}



}

最佳答案

我什至不知道从哪里开始...您的代码中有多个错误:

while ( choice != 4 );

删除分号并将您的switch包裹在{ }

if ( choice == 1 )

不需要在 case 中放置 if 语句,这是多余的

if ( choice != 4 || choice == 4 ){

这始终是正确的,并且如前所述,ifcase 代码块中是多余的

case 1: 

if ( choice == 1 ) {
System.out.println( "Enter a percentage to multiply by" );
percent = input.nextFloat();

}

在每个 case 代码块的末尾,您需要放置一个 break; 语句

关于java - 按 Enter 键后命令提示符卡住,循环无效,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21831590/

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