1. Limited time only! Sign up for a free 30min personal tutor trial with Chegg Tutors
    Dismiss Notice
Dismiss Notice
Join Physics Forums Today!
The friendliest, high quality science and math community on the planet! Everyone who loves science is here!

Java simple array problem

  1. May 5, 2013 #1
    Ok, I have a java app that allows you to choose a class (wizard/elf) and is supposed to give a random amount of health (an array with 10 values) and 25 points of health. When I run the program it gives me the memory location from the array and not the value. I know I am missing something simple, but can't figure it out. Please help!


    Code (Text):

      /**
         * @param args the command line arguments
         */
        public static void main(String[] args) {
            System.out.println("Welcome to the Video Game Character Applcation");
            Scanner sc = new Scanner(System.in);
            String choice = "y";
           
            while (!choice.equalsIgnoreCase("n"))
            {
                // get the input from the user
               // System.out.print("Enter customer type (r/c): ");
                String characterType = Validator.getString(sc,
                    "Enter customer type (Wizard/Elf):   ");
                //String characterType =  getValidCharacterType(sc, "Enter customer type (Wizard/Elf): "); // TODO code application logic here
                System.out.println("You have chosen: "+ characterType);
                System.out.println("Enter your Character's Name: ");
           
            String[] charhealth = new String[10];
            charhealth[0] = "1";
            charhealth[1] = "2";
            charhealth[2] = "3";
            charhealth[3] = "4";
            charhealth[4] = "5";
            charhealth[5] = "6";
            charhealth[6] = "7";
            charhealth[7] = "8";
            charhealth[8] = "9";
            charhealth[9] = "10";
                   
            for (int i = 10; i < charhealth.length; i = i++) {
         System.out.print("Health: " + charhealth[i]);
            }
     
    OUTPUT:

    Welcome to the Video Game Character Applcation
    Enter customer type (Wizard/Elf): wizard
    You have chosen: wizard
    Enter your Character's Name:

    Character Type: wizard
    Health: [Ljava.lang.String;@4c56291a
    Gold Amount: 25.0

    Continue? (y/n):


    PROBLEM IS IN RED. PLEASE ADVISE :D
     
  2. jcsd
  3. May 5, 2013 #2

    Mark44

    Staff: Mentor

    How about something like this?
    Code (Text):
    System.out.print("Health: " + charhealth[i].toString());
     
  4. May 5, 2013 #3
    OUTPUT with changes:

    run:
    Welcome to the Video Game Character Applcation
    Enter customer type (Wizard/Elf): elf
    You have chosen: elf
    Enter your Character's Name:

    Character Type: elf
    Health: [Ljava.lang.String;@4c56291a
    Gold Amount: 25.0

    Continue? (y/n):

    Same output, but still no value??
     
    Last edited: May 5, 2013
  5. May 5, 2013 #4
    Ok, originally it was skipping over the "Enter Character Name" line and going straight through the rest of the program.

    I changed the code so that I inserted the values at array declaration:

    Code (Text):

     public static void main(String[] args) {
            System.out.println("Welcome to the Video Game Character Application");
            Scanner sc = new Scanner(System.in);
            String choice = "y";
           
            while (!choice.equalsIgnoreCase("n"))
            {
                // get the input from the user
               // System.out.print("Enter customer type (r/c): ");
                String characterType = Validator.getString(sc,
                    "Enter customer type (Wizard/Elf):   ");
                //String characterType =  getValidCharacterType(sc, "Enter customer type (Wizard/Elf): "); // TODO code application logic here
                System.out.println("You have chosen: "+ characterType);
                String characterName = Validator.getString(sc,
                    "Enter Character Name:   ");
                System.out.println("Your Character's Name is: " + characterName);
           
            String[] charhealth = new String[]{"0","1","2","3","4","5","6","7","8","9","10"}; //Simply inserted the values at declaration
          /**  charhealth[0] = "1";
            charhealth[1] = "2";
            charhealth[2] = "3";
            charhealth[3] = "4";
            charhealth[4] = "5";
            charhealth[5] = "6";
            charhealth[6] = "7";
            charhealth[7] = "8";
            charhealth[8] = "9";
            charhealth[9] = "10"; */
                   
            for (int i = 10; i < charhealth.length; i = i++) {
         System.out.print("Health: " + charhealth[i].toString());
            }

     
    Now it asks for the character type, and character name, but then it hangs and repeats over and over without stopping...

    New Output:

    Welcome to the Video Game Character Application
    Enter customer type (Wizard/Elf): Elf
    You have chosen: Elf
    Enter Character Name: Jon
    Your Character's Name is: Jon

    Health: 10Health: 10Health: 10Health...Line is too long, switch to wrapped mode....
     
  6. May 5, 2013 #5
    Thanks for the pointer Mark44, I got it!
     
Know someone interested in this topic? Share this thread via Reddit, Google+, Twitter, or Facebook

Have something to add?
Draft saved Draft deleted



Similar Discussions: Java simple array problem
  1. Arrays in Java (Replies: 3)

  2. Java class Arrays (Replies: 1)

Loading...