Challenges
Early on, most students tend to have a lot of trouble with loops. Its also what is quizzed on in a lot of standardized tests.
Because of that there will be a lot of challenges in this section for you to practice. Try to at least do the first ten or so to make sure you have the concept down, but the more the better.
It might take awhile before you feel truly comfortable with this. That is normal.
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 code that outputs every number from 1
to 10
.
void main() {
<CODE HERE>
}
Challenge 2
What will this program output when run? Write down your guess and then try running it.
void main() {
int x = 0;
while (x < 10) {
System.out.println(x);
x++;
}
}
Challenge 3
What will this program output when run? Write down your guess and then try running it.
void main() {
int x = 0;
while (x <= 10) {
System.out.println(x);
x++;
}
}
Challenge 4
What will this program output when run? Write down your guess and then try running it.
void main() {
int x = 0;
while (x < 10) {
if (x % 3 == 0) {
break;
}
System.out.println(x);
x++;
}
}
Challenge 5
What will this program output when run? Write down your guess and then try running it.
void main() {
int x = 0;
while (x < 10) {
if (x % 3 == 0) {
continue;
}
System.out.println(x);
x++;
}
}
Challenge 6
What will this program output when run? Write down your guess and then try running it.
void main() {
int x = 1;
while (x < 10) {
int y = 2;
while (y < 5) {
System.out.println(x * y);
y++;
}
x++;
}
}
Challenge 7
Write code that will output each character of name
on its own line.
So for if name
is equal to "Bridget"
, I would expect the following as output.
B
r
i
d
g
e
t
void main() {
<CODE HERE>
}
Challenge 8
Write code that will output each character of name
on its own line, starting with the last
character and going backwards.
So for if name
is equal to "Samantha"
, I would expect the following as output.
a
h
t
n
a
m
a
S
void main() {
// Change this value to test your code.
String name = "Samantha";
// <CODE HERE>
}
Challenge 9
Write code that will take a number and if it is divisible by two, divides it by two. If it is not, multiplies it by three and adds one.
Keep doing this until the number equals one. Output it each time.
If the initial number is 6
you should have this as output.
6
3
10
5
16
8
4
2
1
If the initial number is 15
you should have this as output.
15
46
23
70
35
106
53
160
80
40
20
10
5
16
4
2
1
void main() {
// Change this value to test your code.
int n = 15;
// <CODE HERE>
}
Challenge 10
Write code that outputs every third number from 37
to 160
.
void main() {
<CODE HERE>
}
Challenge 11
Write code that outputs the number of vowels in name
. Treat y
as a vowel.
Treat the characters a
, A
, e
, E
, i
, I
, o
, O
, u
, U
, y
, and Y
as vowels.
void main() {
// Change this value to test your code.
String name = "Damian";
// <CODE HERE>
}
Challenge 12
Write code that outputs {name} is mostly vowels
if the number of vowels in name
is greater
than the number of consonants. and {name} is mostly consonants
if the opposite is true.
Output {name} has an equal number of vowels and consonants
if the count of both is the
same.
Make sure to not treat non-alphabetic characters like !
and ?
as consonants.
void main() {
// Change this value to test your code.
String name = "Messi";
// <CODE HERE>
}
Challenge 13
Rewrite the following code to not have the shouldBreak
variable
and instead to use a labeled break.
void main() {
// Don't think too hard about what these numbers mean.
int x = 3;
int y = 0;
boolean shouldBreak = false;
while (!shouldBreak && x < 100) {
while (y < 100) {
System.out.println("x is " + x);
System.out.println("y is " + y);
x = x * y;
if (x == 0) {
shouldBreak = true;
break;
}
y++;
}
}
System.out.println("Done");
}