Java Array Problem: Wizard/Elf Character with Random Health and Gold Points

  • Context: Comp Sci 
  • Thread starter Thread starter iamjon.smith
  • Start date Start date
  • Tags Tags
    Array Java
Join the discussion
Ask a follow-up here, or get your own question answered by working scientists, mathematicians and engineers — people, not an autocomplete.
Real named experts · corrections over time · the nuance an AI answer skips
4 replies · 2K views
iamjon.smith
Messages
117
Reaction score
3
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:
  /**
     * @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
 
on Phys.org
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:
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:
 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...
 
Thanks for the pointer Mark44, I got it!