So I'm trying to add a while loop so that the program continues to ask for the user to enter a new string phrase after the previous one is counted until the user enters the phrase "quit". However, for some reason if you enter anything but "quit" it just produces a non-stop loop (never asking the user for a new phrase. What am i doing wrong?

// **********************************************************
//   This program reads in strings (phrases) and counts the 
//   number of blank characters and certain other letters
//   in the phrase.
// **********************************************************

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;
		String quit;

	Scanner scan = new Scanner(;

      // 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 type \"quit\" to stop : ");
      phrase = scan.nextLine();

      while (!phrase.equalsIgnoreCase("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 ' ': 
			case 'a':
			case 'A': 
			case 'e':
			case 'E': 
			case 's':
			case 'S': 
			case 't':
			case 'T': 
        // Print the results
        System.out.println ();
	System.out.println ("You entered the phrase: " + phrase);
	System.out.println ();
        System.out.println ("Your phrase has: " + countBlank + " blink spaces");
        System.out.println (countA + " A's");
	System.out.println (countE + " E's");
	System.out.println (countS + " S's");
	System.out.println (countT + " T's");

Copy your line 31~32 to below line 82. You forget to keep accepting the value from user after you used the value (phrase).

lol figures it would be a stupid mistake like that. That drove me crazy for 2 hours. Thank you.

You are welcome. Please mark it as solved. :)

Be a part of the DaniWeb community

We're a friendly, industry-focused community of developers, IT pros, digital marketers, and technology enthusiasts meeting, networking, learning, and sharing knowledge.