Shifting means moving elements left or right within an array. Since arrays are fixed-size, shifting doesn’t resize — it overwrites. The direction determines your loop order.
Shift Left (remove-style)
Move each element one position to the left. Traverse forward (low to high index).
int[] arr = {10, 20, 30, 40, 50};
// Shift everything left by 1
for (int i = 0; i < arr.length - 1; i++) {
arr[i] = arr[i + 1];
}
arr[arr.length - 1] = 0; // clear last slot
// Result: [20, 30, 40, 50, 0]
Shift Right (insert-style)
Move each element one position to the right. Traverse backward (high to low index) to avoid overwriting.
// Shift everything right by 1 (starting from index 1)
for (int i = arr.length - 1; i > 0; i--) {
arr[i] = arr[i - 1];
}
arr[0] = 0; // clear first slot
// Result: [0, 10, 20, 30, 40]
⚠ Loop Direction Matters: Shifting left needs a forward loop. Shifting right needs a backward loop. Using the wrong direction overwrites elements before they’re copied, corrupting the array.
📝 Practice Question 1
Which loop correctly shifts all elements in array data one position to the RIGHT?
📝 Practice Question 2
After the following code runs, what are the contents of arr?
✅ Exam Tip: Shifting questions on the AP exam almost always ask you to trace through the loop manually. Write out the array state after each iteration. The loop direction (forward vs backward) is the key detail.
Whether you're a student, parent, or teacher — I'd love to hear from you.
Just want free AP CS resources?
Enter your email below and check the subscribe box — no message needed.
Students get daily practice questions and study tips. Teachers get curriculum resources and teaching strategies.
Typically responds within 24 hours
✓
Message Sent!
Thanks for reaching out. I'll get back to you within 24 hours.