if/else
, Scanner
, and return
if/else
, Scanner
, and return
Except where otherwise noted, the contents of this document are Copyright 2010 Stuart Reges and Marty Stepp.
lab document created by Whitaker Brand and Marty Stepp
Goals for today:
String
s to represent and manipulate text data
if/else
statements to select between multiple code actions
Scanner
to create interactive programs that read user input
return
values to send data between methods
String
MethodsMethod name | Description |
---|---|
indexOf(str)
|
index where the start of the given String appears in this string (-1 if not found)
|
length()
|
number of characters in this String
|
replace(str1, str2)
|
a new string with all occurrences of str1 changed to str2 |
substring(index1, index2) or substring(index1) |
the characters in this string from index1 (inclusive) to index2 (exclusive); if index2 is omitted, grabs till end of string |
toLowerCase()
|
a new string with all lowercase letters |
toUpperCase()
|
a new string with all uppercase letters |
Write the results of each expression. Put String
s in "quotes".
// index 0123456789012345
String str1 = "Frodo Baggins";
String str2 = "Gandalf the GRAY";
str1.length() |
13 |
|
str1.indexOf("o") |
2 |
|
str2.toUpperCase() |
"GANDALF THE GRAY" |
|
str1.toLowerCase().indexOf("B") |
-1 |
|
str1.substring(5) |
" Baggins" |
|
str2.substring(3, 14) |
"dalf the GR" |
|
str2.replace("a", "oo") |
"Goondoolf the GRAY" |
|
str2.replace("gray", "white") |
"Gandalf the GRAY" |
|
"str1".replace("r", "range") |
"strange1" |
if
/else
mysteryConsider the following Java code. Fill in the boxes with the output produced by each of the method calls.
public static void mystery(int n) { System.out.print(n + " "); if (n > 10) { n = n / 2; } else { n = n + 7; } if (n * 2 < 25) { n = n + 10; } System.out.println(n); } |
|
Write a method named area
that accepts the radius of a circle as a parameter and returns the area of a circle with that radius. For example, the call area(2.0)
should return 12.566370614359172
.
Write a method named pay
that accepts a real number for a TA's salary and an integer for the number of hours the TA worked this week, and returns how much money to pay the TA. For example, the call pay(5.50, 6)
should return 33.0
.
The TA should receive "overtime" pay of 1 ½ normal salary for any hours above 8. For example, the call pay(4.00, 11)
should return (4.00 * 8) + (6.00 * 3) or 50.0
.
if
/else
Factoringif
/else
. For example:
if (x < 30) { a = 2; x++; System.out.println("CSE 142 TAs are awesome! " + x); } else { a = 2; System.out.println("CSE 142 TAs are awesome! " + x); }
else
went away!)
a = 2; if (x < 30) { x++; } System.out.println("CSE 142 TAs are awesome! " + x);
if
/else
Factoringmain
and run it to make sure it works properly.
Write a method named numUnique
that accepts three integers as parameters and that returns the number of unique integers among the three. For example, the call numUnique(18, 3, 4)
should return 3 because the parameters have 3 different values. By contrast, the call numUnique(6, 7, 6)
would return 2 because there are only 2 unique numbers among the three parameters: 6 and 7.
Write a method named pow
that accepts a base and an exponent as parameters and returns the base raised to the given power. For example, the call pow(3, 4)
returns 3 * 3 * 3 * 3 or 81. Do not use Math.pow
in your solution; use a cumulative algorithm instead. Assume that the base and exponent are non-negative.
Write a method named smallestLargest
that prompts the user to enter numbers, reads them, then prints the smallest and largest of all the numbers typed in by the user. For example:
How many numbers do you want to enter? 4 Number 1: 5 Number 2: 11 Number 3: -2 Number 4: 3 Smallest = -2 Largest = 11
public class AgeCheck { public static void main(String[] args) { int myAge = 19; // I am 19; let me see if I can drive message(myAge); } // Displays message about driving to user based on given age public static void message(int age) { if (myAge >= 16) { System.out.println("I'm old enough to drive!"); } if (myAge <= 16) { System.out.println("Not old enough yet... :*("); } } }
if
and else
in a clumsy way. Improve the style of the code.
public class AgeCheck { public static void main(String[] args) { int myAge = 19; // I am 19; let me see if I can drive message(myAge); } // Displays a message about driving to user based on given age public static void message(int age) { if (age >= 16) { System.out.println("I'm old enough to drive!"); } else { System.out.println("Not old enough yet... :*("); } } }
AgeCheck
program's message
method with:
// Possibly prints some message(s) to the user based on the given age public static void message(int age) { if (age >= 21) { System.out.println("I can legally purchase alcohol!"); } else if (age >= 17) { System.out.println("I can purchase a ticket to an R-rated movie."); } else if (age >= 16) { System.out.println("I can get my driver's license!"); } }
if
s and else
s in this method to behave properly.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 |
public class IfOops { public static void main(String[] args) { int a = 7, b = 42; minimum(a, b); if {smaller = a} { System.out.println("a is the smallest!"); } } public static void minimum(int a, int b) { // returns which int is smaller if (a < b) { int smaller = a; } else (a => b) { int smaller = b; } return int smaller; } } |
if
statement should use ()
parentheses, not {}
brackets=
should be ==
smaller
is out of scope herevoid
should be int
=>
should be >=
(or better yet, no if
test is needed)int
when returning itint smaller
is out of scope here (declare outside if
or return directly)public class IfOops { public static void main(String[] args) { int a = 7, b = 42; int smaller = minimum(a, b); if (smaller == a) { System.out.println("a is the smallest!"); } } public staticvoidint minimum(int a, int b) { // returns which int is smaller int smaller; if (a < b) {intsmaller = a; } elseif (a >= b){intsmaller = b; } returnintsmaller; } }
Write a complete program WazzuAdmit
with the behavior shown below. Use the Scanner
to read user input for a student's grade point average and SAT exam score. A GPA of 1.8 or an SAT score of 900 or above (or both) will cause the student to be accepted; anything less will cause him/her to be rejected.
Washington State University admission program What is your GPA? 3.2 What is your SAT score? 1280 You were accepted!
import java.util.*; // for Scanner public class WazzuAdmit { public static void main(String[] args) { Scanner console = new Scanner(System.in); System.out.println("Washington State University admission program"); System.out.print("What is your GPA? "); double gpa = console.nextDouble(); System.out.print("What is your SAT score? "); int sat = console.nextInt(); if (gpa >= 1.8 || sat >= 900) { System.out.println("You were accepted!"); } else { System.out.println("You were rejected!"); } } }
You're thinking about going with your friends to a movie. Write a Java method seeMovie
that accepts two parameters: the cost of a ticket in dollars, and the rating number of stars the movie received out of 5. The method should print how interested you are (very, sort-of, or not). Use the following criteria:
If you finish all the exercises, try out our Practice-It web tool. It lets you solve Java problems from our Building Java Programs textbook.
You can view an exercise, type a solution, and submit it to see if you have solved it correctly.
Choose some problems from Chapter 4 and try to solve them!