gpt4 book ai didi

java - 我需要帮助完成作业

转载 作者:行者123 更新时间:2023-11-29 06:13:15 26 4
gpt4 key购买 nike

我已经在这个程序上工作了大约 3 周,但无法找出我的错误。我必须使用两个公共(public)类:1) validateLength(Number) 和 2) convertIntegerToWords(Number)。我的问题是,一旦用户输入他们的整数,我的循环就会永远持续下去。系统将要求输入整数、用户输入、系统输出太长或继续转换为 convertIntgerToWords。我的代码在下面

import java.util.Scanner;
public class Project2 {

public static void main(String [] args) {
//Main Method//

//Create a Scanner//
Scanner input = new Scanner(System.in);

//Enter an Integer//
System.out.print(" What is your integer ? ");
int Number= input.nextInt();
while (Number >= 0) {
if (Number != 0)
validateLength(Number);
else if(Number == 0) {
System.out.print( "Thank you for playing! " + "Good bye! ");
break;
}
}
}

//Next Method//
public static boolean validateLength(int userNum) {
String Number = "" + userNum;
while (userNum >= 0) {
if (userNum < 10)
convertIntegerToWords(userNum);
else if (userNum > 9){
System.out.print("Your integer is too long !");
break;
}
}
}
//End of validate//

//Final Method//
public static String convertIntegerToWords(int Number) {
if (Number == 1)
System.out.println("Your integer " + Number + "is written out as one");
else if (Number == 2)
System.out.println("Your integer " + Number + "is written out as two");
else if (Number == 3)
System.out.println("Your integer " + Number + "is written out as three");
else if (Number == 4)
System.out.println("Your integer " + Number + "is written out as four");
else if (Number == 5)
System.out.println("Your integer " + Number + "is written out as five");
else if (Number == 6)
System.out.println("Your integer " + Number + "is written out as six");
else if (Number == 7)
System.out.println("Your integer " + Number + "is written out as seven");
else if (Number == 8)
System.out.println("Your integer " + Number + "is written out as eight");
else if (Number == 9)
System.out.println("Your integer " + Number + "is written out as nine");
return Number + "";
}
}
}

最佳答案

你需要移动

Number = input.nextInt();

while 循环内部。这是典型的习语(也添加了其他清理):

public static void main(String[] args)
{
Scanner input = new Scanner(System.in);

// Enter an Integer//
System.out.print(" What is your integer ? ");
int Number;
while ((Number = input.nextInt()) >= 0)
{
if (Number == 0)
{
System.out.print("Thank you for playing! " + "Good bye! ");
break;
}

validateLength(Number);
}
}

编辑

if the user enters 0 then yes the program terminates. However if the user enters an integer 1-9, the program should spell out the integer in words (ie 1 is written out as one). It does this but it loops infinite. Same as if the user enters an integer larger than 9 it reports that the "YOur integer is too big, enter another integer" This however, repeats on the same line over and over.

那是因为 validateLength() 中的 while 循环。试试这个(同时注意其他代码清理):

public class ScannerDemo
{
private static void convertIntegerToWords(int num)
{
String message = null;
if (num > 9)
{
message = "Your integer is too long!";
}
else if (num > 0)
{
message = "Your integer " + num + " is written out as ";
String numString = "";

switch (num)
{
case 1:
numString = "one"; break;
case 2:
numString = "two"; break;
case 3:
numString = "three"; break;
case 4:
numString = "four"; break;
case 5:
numString = "five"; break;
case 6:
numString = "six"; break;
case 7:
numString = "seven"; break;
case 8:
numString = "eight"; break;
case 9:
numString = "nine"; break;
}

message += numString;
}

System.out.println(message);
}

private static int getNextNumber(Scanner s)
{
System.out.println("What is your integer?");
return s.nextInt();
}

public static void main(String[] args)
{
Scanner input = new Scanner(System.in);

int number;
while ((number = getNextNumber(input)) >= 0)
{
if (number == 0)
{
System.out.println("Thank you for playing! Good bye!");
break;
}

convertIntegerToWords(number);
}
}
}

也是on github .

关于java - 我需要帮助完成作业,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6021379/

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