gpt4 book ai didi

java - 计数字符

转载 作者:行者123 更新时间:2023-12-01 08:13:49 25 4
gpt4 key购买 nike

我在编写代码以创建 while 循环时遇到问题,只要用户没有结束“退出”,就要求用户输入。当我运行代码时,它只生成第一个提示问题“输入句子或短语:”,然后在输入短语后,它不会计算 while 语句。有谁知道我做错了什么?

问题是:“如果程序能让用户继续输入短语,而不是每次都重新启动它,那就太好了。为此,我们需要另一个围绕当前代码的循环。也就是说,当前循环将嵌套在新循环内。添加一个外部 while 循环,只要用户不输入短语 quit,该循环就会继续执行。修改提示以告诉用户输入短语或 quit 来退出。请注意,计数的所有初始化都应该在内部while 循环(也就是说,我们希望为用户输入的每个新短语重新开始计数)。您需要做的就是添加 while 语句(并考虑读取的位置,以便循环正常工作)。确保浏览程序并在添加代码后正确缩进 - 对于嵌套循环,内部循环应该缩进。”

    import java.util.Scanner;
public class Count

{
public static void main (String[] args)
{

String phrase; // A string of characters
int countBlank; // the number of blanks (spaces) in the phrase
int length; // the length of the phrase
char ch; // an individual character in the string

int countA, countE, countS, countT; // variables for counting the number of each letter

scan = new Scanner(System.in);

// Print a program header
System.out.println ();
System.out.println ("Character Counter");
System.out.println ("(to quit the program, enter 'quit' when prompted for a phrase)");
System.out.println ();

// Creates a while loop to continue to run the program until the user
// terminates it by entering 'quit' into the string prompt.

System.out.print ("Enter a sentence or phrase: ");
phrase = scan.nextLine();

while (phrase != "quit");
{
length = phrase.length();



// Initialize counts
countBlank = 0;
countA = 0;
countE = 0;
countS = 0;
countT = 0;

// a for loop to go through the string character by character
// and count the blank spaces

for (int i = 0; i < length ; i++)
{
ch = phrase.charAt(i);

switch (ch)
{
case 'a': // Puts 'a' in for variable ch
case 'A': countA++; // Puts 'A' in for variable ch and increments countA by 1 each time
break; // one of the variables exists in the phrase

case 'e': // puts 'e' in for variable ch
case 'E': countE++; // ... etc.
break;
case 's':
case 'S': countS++;
break;
case 't':
case 'T': countT++;
break;

case ' ': countBlank++;
break;
}

}

// Print the results
System.out.println ();
System.out.println ("Number of blank spaces: " + countBlank);
System.out.println ();
System.out.println ("Number of a's: " + countA);
System.out.println ("Number of e's: " + countE);
System.out.println ("Number of s's: " + countS);
System.out.println ("Number of t's: " + countT);
System.out.println ();



}
}

}

最佳答案

这个问题有两个方面:

while (phrase != "quit");

首先,不要使用==!=进行字符串相等性检查。它仅检查引用身份

其次,末尾的 ; 意味着它将永远循环。它相当于:

while (phrase != "quit")
{
}

你想要:

while (!phrase.equals("quit"))

想在循环结束时请求更多输入。 (仍在循环体内,但在输出部分之后。)或者将循环条件更改为永远循环,在开始时要求输入,如果输入是“退出”,则中断。

关于java - 计数字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15145657/

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