简体   繁体   中英

java using NetBeans IDE 8.0.2

I am having trouble clearing the following error '(' or '[' expected on the second line of case 2 and case 3. The code I have written is newAnimal.displayInfo();

I am not sure why I get this error on case 2 and 3 but not case 1. Not sure what I am doing wrong. Any assistance/guidance will be appreciated.

Here is what the code looks like:

package animalinfo;

import java.util.Scanner;

public class AnimalInfo 
{

/**
 * @param args the command line arguments
 */

public static void main(String[] args)
{
    // TODO code application logic here
    Scanner input = new Scanner (System.in);
    Animal newAnimal;
    int quit = 4;
    while(-4 != quit);
    {
        System.out.println("\n1) Camel" +
                "\n2)Penguin" +
                "\n3) Tortoise" +
                "\n4) Exit Program.");
        System.out.print("Please select an amimalfrom the list.");

        int choice = input.nextInt();
        switch (choice)    
    {    
        case 1: 
            newAnimal = new Camel();
            newAnimal.displayInfo();
            break;
        case 2:
            newAnimal = new Penguin
            newAnimal.displayInfo();
            break;
        case 3:
            newAnimal = new Tortoise
            newAnimal.displayInfo();
            break;     

        case 4:
            System.out.println ("Thank you for making your selections.");
            break;
    }
    }
}
}
while(-4 != quit); 

Get rid of the semicolon, should just be

while (-4 != quit) 
{ 
    /*Code here*/ 
} 

and yes, when you have new Penguin and new Tortoise , you are missing the parentheses and semicolon

It seems like you're missing parentheses after creating the new objects. So this:

newAnimal = new Penguin

should become this:

newAnimal = new Penguin();

This is because you're setting newAnimal to a new instance of a Penguin object, and to create that new instance you must call the constructor of the Penguin class to create the object.

Also, as Jurko stated, your while loop is set up incorrectly.

while(-4 != quit);

You must remove the semicolon, otherwise the loop will indefinitely run without executing the code you have underneath it. The correct syntax for a while loop is

while (-4 != quit) {
  // Code to repeat here
}

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM