好吧,所以我写了这个程序,它将计算某些字母和空格,我希望它执行的操作是让用户不断输入短语,并继续循环直到用户输入quit终止。我无法看到放置while循环的位置。我知道我应该在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=0,countE=0,countS=0,countT=0;
Scanner scan = new Scanner(System.in);
// Print a program header
System.out.println();
System.out.println ("Character Counter");
System.out.println();
// Read in a string and find its length
System.out.print ("Enter a sentence or phrase or enter (Quit) to quit: ");
phrase = scan.nextLine();
while(!phrase.equalsIgnoreCase ("Quit"))
{
length = phrase.length();
// Initialize counts
countBlank = 0;
// a for loop to go through the string character by character
for (int i = 0; i < phrase.length(); i++)
{
if(phrase.charAt(i) == ' ') countBlank++;
switch(ch=phrase.charAt(i))
{
case 'a':
case 'A': countA++;
break;
case 'e':
case 'E': countE++;
break;
case 's':
case 'S': countS++;
break;
case 't':
case 'T': countT++;
break;
}
}
// Print the results
System.out.println();
System.out.println ("Number of blank spaces: " + countBlank);
System.out.println ("Number of a: " + countA);
System.out.println ("Number of e: " + countE);
System.out.println ("Number of s: " + countS);
System.out.println ("Number of t: " + countT);
System.out.println();
}
}
}
首先,采取“退出”,而不是“退出”,并且您应该使用ToLower()以确保tolower之后的“quItE”=“quit”。 – 2011-03-07 20:39:30
不要在循环内“初始化”某些东西,它会在每个循环中重新初始化 – 2011-03-07 20:40:12