Welcome to the Treehouse Community

Want to collaborate on code errors? Have bugs you need feedback on? Looking for an extra set of eyes on your latest project? Get support with fellow developers, designers, and programmers of all backgrounds and skill levels here with the Treehouse Community! While you're at it, check out some resources Treehouse students have shared here.

Looking to learn something new?

Treehouse offers a seven day free trial for new students. Get access to thousands of hours of content and join thousands of Treehouse students and alumni in the community today.

Start your free trial

Java Java Basics Perfecting the Prototype Censoring Words - Looping Until the Value Passes

Azzan Al-Rahbi
Azzan Al-Rahbi
1,412 Points

errors java:27,28,29

import java.io.Console;

public class TreeStory {

public static void main(String[] args) {
    Console console = System.console();
    /*  Some terms:
        noun - Person, place or thing
        verb - An action
        adjective - A description used to modify or describe a noun
        Enter your amazing code here!
    */
  String ageAsString = console.readLine("how old are you?  ");     

int age = Integer.parseInt(ageAsString); if (age < 13) {
//insert exit code console.printf("sorry you must be at least 13 to use this program.\n"); System.exit(0); } String name = console.readLine("Enter a name: "); String adjective = console.readLine("Enter an adjective: "); do { String noun = console.readLine("Enter a noun: "); if (noun.equalsIgnoreCase("dork") || noun.equalsIgnoreCase("jerk")) console.printf("that language is not allowed. Try again. \n\n"); } } while(noun.equalsIgnoreCase("dork") || noun.equalsIgnoreCase("jerk")); String adverb = console.readLine("Enter an adverb: "); String verb = console.readLine("Enter a verb ending with -ing: "); console.printf("Your TreeStory:\n--------------\n"); console.printf("%s is a %s %s. ", name, adjective, noun); console.printf("They are always %s %s.\n", adverb, verb);

}

}

2 Answers

After formatting your code, I found a few problems.

  1. Your if statement inside of your do while loop had a closing curly brace with no opening curly brace.
  2. You declared a variable called "noun" in your do while loop and tried using it in your while statement. Your noun variable is now out of scope when calling it in your while statement giving you an error. To fix this, I declared the noun variable outside of the do while.

Here is your completed code.

    public static void main(String[] args) {
        Console console = System.console();
        /*  Some terms:
        noun - Person, place or thing
        verb - An action
        adjective - A description used to modify or describe a noun
        Enter your amazing code here!
         */
        String ageAsString = console.readLine("how old are you?  ");
        int age = Integer.parseInt(ageAsString);
        if (age < 13) {
        //insert exit code 
            console.printf("sorry you must be at least 13 to use this program.\n");
            System.exit(0);
        }

        String name = console.readLine("Enter a name: ");
        String adjective = console.readLine("Enter an adjective: ");

        //declared noun here so we can use it in the while statement.
        String noun;
        do {
            noun = console.readLine("Enter a noun: ");
            if (noun.equalsIgnoreCase("dork") || noun.equalsIgnoreCase("jerk")) {
                console.printf("that language is not allowed. Try again. \n\n");
            }

        } while (noun.equalsIgnoreCase("dork") || noun.equalsIgnoreCase("jerk"));

        String adverb = console.readLine("Enter an adverb: ");
        String verb = console.readLine("Enter a verb ending with -ing: ");
        console.printf("Your TreeStory:\n--------------\n");
        console.printf("%s is a %s %s. ", name, adjective, noun);
        console.printf("They are always %s %s.\n", adverb, verb);
    } //end of main()

EDIT: Starting at 2:40 in the video he talks about scope and moves the noun variable as I did.

Azzan Al-Rahbi
Azzan Al-Rahbi
1,412 Points

i'am having more errors now

Azzan Al-Rahbi
Azzan Al-Rahbi
1,412 Points

i think the problem with workspases i can't save my work

Azzan Al-Rahbi
Azzan Al-Rahbi
1,412 Points

thanks man it was a problem with workspases and its done now

Check if your are missing a brace in your code