Challenges

Remember the rules for this are

  • Try to use only the information given up to this point in this book.
  • Try not to give up until you've given it a solid attempt

Challenge 1.

Write a method which takes in a String[] representing a series of names and prints out every name in sequence.

If this method is given null, it should act as if it was given an empty array.

void printNames(String[] names) {

}

void main() {
    printNames(new String[] {
        "Joker",
        "Batman",
        "Alfred"
    });
}

Challenge 2.

Alter the method you wrote in the previous challenge so that if it is given null it outputs the message You do not know any names yet.

If it is given an empty String[] it should continue to simply output nothing.

void printNames(String[] names) {

}

void main() {
    printNames(new String[] {
        "Joker",
        "Batman",
        "Alfred"
    });
}

Challenge 3.

Will the following code throw a NullPointerException? Why or why not?

void main() {
    String[] jobs = new String[] {
        "Carpenter",
        "Baker",
        null,
        "Astronomer"
    };

    for (int i = 0; i < jobs.length; i++) {
        System.out.println(jobs[i]);
    }
}

Challenge 4.

The following code won't work. Give your best guess as to why and then try running it.

void main() {
    int[] numbers = new int[] {
        45,
        32,
        null,
        94
    };

    for (int i = 0; i < numbers.length; i++) {
        System.out.println(numbers[i]);
    }
}

Challenge 5.

Without changing anything in the main method, make the bigness method not throw a NullPointerException and still have the "correct" behavior for non-null inputs.

String bigness(String letters) {
    int bigness = 0;
    for (int i = 0; i < letters.length(); i++) {
        bigness++;
    }

    if (bigness < 5) {
        return "small";
    }
    else if (bigness < 10) {
        return "medium"
    }
    else {
        return "big";
    }
}

void main() {
    System.out.println(
        bigness("bore")
    );

    System.out.println(
        bigness("boiler")
    );

    System.out.println(
        bigness("filter")
    );

    System.out.println(
        bigness("knower")
    );

    System.out.println(
        bigness("chrysanthemum")
    );

    System.out.println(
        bigness(null)
    );
}