Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/362.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 计数字符_Java_While Loop_Character_Switch Statement_Counting - Fatal编程技术网

Java 计数字符

Java 计数字符,java,while-loop,character,switch-statement,counting,Java,While Loop,Character,Switch Statement,Counting,我在编写代码以进行while循环时遇到问题,只要用户没有结束“quit”,就可以请求用户输入。当我运行代码时,它只会生成第一个提示问题“输入一个句子或短语:”然后在输入短语后,它不会计算while语句。有人知道我做错了什么吗 问题是: “如果程序允许用户不断输入短语而不是每次都重新启动它,那就太好了。要做到这一点,我们需要围绕当前代码的另一个循环。也就是说,当前循环将嵌套在新循环中。添加一个外部while循环,只要用户不输入短语quit.M,该循环将继续执行修改提示以告诉用户输入短语或退出以退出

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

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

import java.util.Scanner;
公共类计数
{
公共静态void main(字符串[]args)
{
字符串短语;//一个字符串
int countBlank;//短语中的空格数
int length;//短语的长度
char ch;//字符串中的单个字符
int countA,countE,countS,countT;//用于计算每个字母数的变量
扫描=新扫描仪(System.in);
//打印程序标题
System.out.println();
System.out.println(“字符计数器”);
System.out.println((要退出程序,在提示输入短语时输入'quit');
System.out.println();
//创建while循环以继续运行程序,直到用户
//通过在字符串提示符中输入'quit'终止它。
System.out.print(“输入句子或短语:”);
短语=scan.nextLine();
而(短语!=“退出”);
{   
长度=短语。长度();
//初始化计数
countBlank=0;
countA=0;
计数=0;
计数=0;
countT=0;
//一个for循环,用于逐个字符地遍历字符串
/和计数空白空间
for(int i=0;i

}

你需要在
循环中再次收集输入。在循环的末尾放上如下内容:

phrase = scan.nextLine();
请注意,在while循环开始之前,您只获得一次
短语的值。在此之后,您不会将其设置为任何其他值。执行输出后,您需要为
短语
收集另一个值(可能等于“退出”)


编辑:还有,乔恩说的。听他的。他……相当聪明。

你需要在
循环中再次收集输入,而
循环。在结尾处放上类似这样的内容:

phrase = scan.nextLine();
请注意,在while循环开始之前,您只获得一次
短语的值。在此之后,您不会将其设置为任何其他值。执行输出后,您需要为
短语
收集另一个值(可能等于“退出”)


编辑:还有,乔恩说的。听他的。他……相当聪明。

这是两个方面的问题:

while (phrase != "quit");
首先,不要使用
=
!=
进行字符串相等性检查。它只检查引用标识

其次,结尾的
意味着它将永远保持循环。它相当于:

while (phrase != "quit")
{
}
你想要:

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

您还希望在循环结束时请求更多的输入(仍在循环体中,但在输出部分之后)。或者将循环条件更改为“永远循环”,在开始时请求输入,然后在输入为“退出”时中断。这是两个方面的问题:

while (phrase != "quit");
首先,不要使用
=
!=
进行字符串相等性检查。它只检查引用标识

其次,结尾的
意味着它将永远保持循环。它相当于:

while (phrase != "quit")
{
}
你想要:

while (!phrase.equals("quit"))
您还希望在循环结束时请求更多输入(仍在循环体中,但在输出部分之后)。或者将循环条件更改为“永远循环”,在开始时请求输入,例如