Answer:
<em>(c) The method call, which worked correctly before the change, will now cause a run-time error because it attempts to access a character at index 7 in a string whose last element is at index 6.</em>
<em />
Explanation:
Given
printAllCharacters method and printAllCharacters("ABCDEFG");
Required
What happens when x < str.length() is changed to x <= str.length()
First, we need to understand that str.length() gets the length of string "ABCDEFG"
There are 7 characters in "ABCDEFG".
So: str.length() = 7
The first character is at index 0 and the last is at index 6
Next, we need to simplify the loop:
for (int x = 0; x< str.length(); x++) means for (int x = 0; x< 7; x++)
The above loop will iterate from the character at the 0 index to the character at the 6th index
while
for (int x = 0; x<=str.length(); x++) means for (int x = 0; x<=7; x++)
The above loop will iterate from the character at the 0 index to the character at the 7th index
Because there is no character at the 7th index, the loop will return an error
Hence: (c) is correct