review session ryan ly (slides by jai madhok) email: [email protected]
TRANSCRIPT
Key Concepts
Identifiers- What are they?Rules to determine invalid vs. valid
identifiers Cannot be a reserved word No spaces in between No symbols other than the ‘$’ and ‘_’ Cannot begin with a digit
Data Types
3 kinds of primitive data typesType conversion between data types
Implicit vs. explicit type conversionThe ‘Cast’ operator:
Syntax: (dataType) expressionWhat happens when an operator has
mixed operands?
Strings
A String is an ‘Object’ In Java, they are enclosed in double quotes What is a null string? Empty string? How does indexing work? Predefined methods:
substring(startIndex, stopIndex) charAt(index) indexOf(ch) length() replace() toLowerCase(), toUpperCase()
Named Constants
Use the keyword final Identifier should be in all Capital Letters Memory location whose content is not
allowed to change during program execution Ex: final int CENTS_PER_DOLLAR= 100; Several advantages:
Prevent typos▪ If you mistype the name of the constant, the compiler will
warn you as compared to typing in a wrong value which the compiler will blindly accept
Easy to modify the program in the future Good programming practice
Input Statements
To put data into variables from an input device, we first create an input stream object and associate it with a standard input deviceScanner scan= new Scanner(System.in);
More about Scanner: next() nextInt() nextDouble() nextLine()
How do we read in a single character using a Scanner object?
Know how to use these!
Tokenizing & Parsing
Sometimes we read in input in the form of a string and then want to extract numeric data from it
How do we do this? Tokenize and Parse Syntax:
StringTokenizer t= new StringTokenizer(str, delim) Say we want an integer:
int a= Integer.parseInt(t.nextToken()) Other method: Double.parseDouble()
Note: Parsing and type casting are different things
File Handling
A file is defined as an area in secondary storage used to hold information
Scanner scan= new Scanner(new FileReader(filename1));
PrintWriter oFile= new PrintWriter(filename2);
Warning: Closing the file you are writing to is more important than you think it is
Use same methods for reading and writing/formatting files as you have been for user input/output
Formatting Output With printf Syntax:
System.out.printf(formatString, argumentList) formatString: string specifying the format argumentList: list of arguments containing
constant values, variables, or expressions, separated by comma
Example:System.out.printf(“There are %.2f inches in %d
centimeters \n”, cm/2.54, cm) Where cm is a variable of the type int.
Note: You can also use the DecimalFormat class to format your decimal output. Take your pick!
More Fun With Strings
compareTo() Compare Strings character by character until a
mismatch is found What does this method return? What is the basis for deciding what a mismatch
is and what it isn’t?
equals() Case sensitive method How to solve the case sensitivity issue? What does the method return?
Operators- Order of Precedence() . []Unary Operators: negation, casting, not (!), ++,
-- Arithmetic Operators I: * / %Arithmetic Operators II: + -Comparison Operators: < <= > >= Equivalence Operators: == != Logical AND: &&Logical OR: ||Ternary Operator: ?:Assignment Operators: = += -= *= /= %=
Control Structures
Provide alternatives to sequential program execution and are used to alter flow of execution
Alternatives are: Selection – if, if/else, switch/case Repetition – for, while, do-while
While Loops
Using loop control variables Counter controlled while loops Sentinel controlled while loops Flag controlled while loops
EOF controlled while loops Do-while loops are different
from a generic while Run body then check condition to
decide whether to loop
T
F
for (initial statement; loop condition; update statement)
KNOW THIS LOOP COLD!
Initial Statement
Loop Conditio
n Statements
Update Statement
T
F
Exit early from a loopSkip the remaining cases in a switch
case constructDon’t try and use them at random
places to make your code work, most of the time it won’t.
java.util – Scanner, StringTokenizer java.io – BufferedReader, FileReader,
PrintWriter java.text – DecimalFormat java.lang – String, Math
Don’t need to import
Reading flow in java:a = a + 2;
‘A’ in ASCII is 65ASCII is a subset of UnicodeEscape sequencesCompound operators Increment/Decrement operators,
pre/post
Documentation Reading
Read up some common methods of the following classes for use in the assignments and exams: String Scanner Math StringTokenizer Character
True/FalseMultiple ChoiceCode TracingCode CompletionFinding ErrorsOther random kinds of questions like
matching exercises are a possibility
Exam Tips
Read through all questions carefully Write answers legibly Show all work for partial credit Do not spend too much time on any
one problem if it is causing trouble, come back to it later on
Read through the chapter summaries in the text book and all of Dr. S’s class notes
Good Luck!
char let=‘A’;for (int i=1; i<=3; i++){ for(int j=i; j<5; j++) System.out.print(let); System.out.println(); let+=1;}
Predict the output [6 points]Difficulty: Medium
int n1=6, n2=10;if(n1 >= n2/2) {if(true && false)
System.out.print(“one”); }else
System.out.print(“two”);System.out.print(“three”);
Predict the output [3 points]Difficulty: Easy
int num=6;while(num<16) {
switch(num%4) {case 1: System.out.println(“one”); break;case 2: System.out.println(“two”); case 3: System.out.println(“three”); break;case 0: System.out.println(“multiple”);}
num+=3;}
Predict the output [4-6 points]Difficulty: Medium
boolean a=true, b=false;if (a && (true|| !b) )
if( b || (!a && false) )System.out.println(“happy”);
else System.out.println(“ halloween”);System.out.println(“goblins”);
Predict the output [6 points]Difficulty: Medium
Sample Code Tracing #5
double a = 1.6;int b = 13;double c = (int) a * 2 + 1;for (; b > 0; b-=3){
b /= c; // legal b/c equivalent to b = (int) (b/c);System.out.println(b);System.out.println(++b * 0.5 + b--);
}
Predict the output [9 points]Difficulty: Hard
Sample Error Finding #1
String s = “hello world”;String space = s.indexOf(“ “);
String pt2 = s.substring(space,s.length); System.out.println(pt2);
Find the error [3 points]Difficulty: Easy