Program Control ICS 111 Introduction to Computer Science

  • Slides: 33
Download presentation
Program Control • ICS 111 – Introduction to Computer Science II • William M.

Program Control • ICS 111 – Introduction to Computer Science II • William M. Albritton, Information and Computer Sciences Department at University of Hawai’i at Manoa

Vocabulary • Primitive data type – A built-in data type • • Closely models

Vocabulary • Primitive data type – A built-in data type • • Closely models the computer’s memory Predefined by the Java language Manipulated by built-in operators Do not have methods or instance variables (very different than objects) – Java has 8 primitive data types • byte, short, int, long, double, float, boolean, char

Integer Data Types • Type Storage Range • byte • short • int 1

Integer Data Types • Type Storage Range • byte • short • int 1 byte (8 bits) 2 bytes (16 bits) 4 bytes (32 bits) -128 to +127 -32, 768 to +32, 767 -2, 147, 483, 648 to +2, 147, 483, 647 • long 8 bytes (64 bits) -9, 223, 372, 036, 854, 775, 808 to +9, 223, 372, 036, 854, 775, 807

Floating-point Data Types • Type Storage Range • float 4 bytes (32 bits) •

Floating-point Data Types • Type Storage Range • float 4 bytes (32 bits) • double 8 bytes (64 bits) -3. 4 x 1038 to +3. 4 x 1038 (7 significant digits) -1. 7 x 10308 to +1. 7 x 10308 (15 significant digits) • Example declarations – float f = 123. 456 f; //f for float – double d = 123. 456; //double by default

Two Kinds of Division • Integer division – “Cuts-off” digits after the decimal point

Two Kinds of Division • Integer division – “Cuts-off” digits after the decimal point (does not round up) • int x = 1/2; //x==0 • Floating point division – Returns a floating point (decimal point) value • double d = 1. 0/2. 0; //d==0. 5 • d = (double)1/2; // d==0. 5 • d = 1/2; // d==0. 0

Character Data Type • Stores a 2 byte (16 bit) Unicode character – Have

Character Data Type • Stores a 2 byte (16 bit) Unicode character – Have to use single quotes around the character • char ch = 'a'; – Some special characters, which are called escape sequences, begin with a backslash character () • char • char newline = 'n'; tab = 't'; double_quote = '"'; single_quote = '''; backslash = '\';

Boolean Data Type • Models truth values – Either true or false • boolean

Boolean Data Type • Models truth values – Either true or false • boolean variable = true; • variable = false;

Vocabulary • Wrapper class – A class that represents a primitive data type •

Vocabulary • Wrapper class – A class that represents a primitive data type • Used to store the primitive data type as an object • Useful when a primitive data type has to be manipulated by objects – Java’s wrapper classes correspond to the 8 primitive data types • Byte, Short, Integer, Long, Float, Double, Character, Boolean

Wrapper Class • Example declarations – int x = 5; //primitive data type –

Wrapper Class • Example declarations – int x = 5; //primitive data type – Integer y = new Integer(5); //wrapper class • Wrapper classes may have useful static methods & static variables – String five = new String("25"); – int z = Integer. parse. Int(five); //returns integer value 25

Vocabulary • Boolean expression – A combination of operators & operands that returns true

Vocabulary • Boolean expression – A combination of operators & operands that returns true or false • • • Used in selection & repetition statements Evaluated from left to right Operands are what the operators “operate” upon – 3 Kinds of boolean operators 1. Equality operators: ==, != 2. Relational operators: >, >=, <, <= 3. Logical operators: &&, ||, ! (and, or, not)

Logical Operators • Logical and, or, not: &&, ||, ! – – Evaluated left

Logical Operators • Logical and, or, not: &&, ||, ! – – Evaluated left to right Returns true or false Operands have to be boolean Often see if(!x), which means if(x==false) • x can be boolean type, or boolean expression, or boolean (predicate) method

Example Code & Class Exercise • See Example. java for examples with – –

Example Code & Class Exercise • See Example. java for examples with – – • Primitive data types Wrapper classes Relational operators Logical operators Class Exercise – Tracing exercise • See Tracing. java

Increment & Decrement • Preincrement operator – Add 1, then assign/use value • int

Increment & Decrement • Preincrement operator – Add 1, then assign/use value • int a = 3; • int b = ++a; //b=4, a=4 • Postincrement operator – Assign/use old value, then add 1 • • int a = 3; b = a++; //b=3, a=4 3; c = 10 + a++; //c=13, a=4

Assignment Operators x = x + 5; – Can also be written as x

Assignment Operators x = x + 5; – Can also be written as x += 5; a *= b + 5; – Evaluates to a = a *(b + 5); – And not a = a * b + 5;

Conditional Operator if (x > y) a = x * y; else a =

Conditional Operator if (x > y) a = x * y; else a = x + y; – Can also be written as (conditional operator) a = (x > y) ? (x * y) : (x + y); – (boolean expression) ? (return 1 st value if true) : (return 2 nd value if false)

Short Circuit Evaluation • Shortcut for evaluating logical operators – Logical or: will stop

Short Circuit Evaluation • Shortcut for evaluating logical operators – Logical or: will stop at leftmost true operand int a = 3, b = 3; if( (++a==4) || (++b==2) ) System. out. println("a="+a+", b="+b); //a=4, b=3

Short Circuit Evaluation • Shortcut for evaluating logical operators – Logical and: will stop

Short Circuit Evaluation • Shortcut for evaluating logical operators – Logical and: will stop at leftmost false operand int a = 3, b = 3; if( (++a==3) && (++b==2) ) System. out. println("a="+a+", b="+b); //a=4, b=3

Example Code & Class Exercise • See Example 2. java for examples on –

Example Code & Class Exercise • See Example 2. java for examples on – – • Increment & decrement Assignment operators Conditional operator Short circuit evaluation Class exercise – See Tracing 2. java

Vocabulary • Flow of control – Order of execution of statements in a program

Vocabulary • Flow of control – Order of execution of statements in a program • • • Usually one statement is executed after another, from the first statement in a program to last statement Methods alter flow of control, by having control (also called the “program counter” or “instruction pointer”) jump to the method that is invoked (called), and then jump back to the next line after the method call (return address) in the program Within a method, the execution order of statements is controlled by selection & repetition statements

Vocabulary • Selection statement – Chooses which statement to be executed next • •

Vocabulary • Selection statement – Chooses which statement to be executed next • • Also called “conditional statement” Uses a boolean expression to choose which statement or group of statements to execute – 3 kinds of selection statements • if, if-else, switch

Selection – 3 Ways 1. If structure (single selection) 2. If-else structure (double, multiple

Selection – 3 Ways 1. If structure (single selection) 2. If-else structure (double, multiple selection) if(condition 1) statement 1; else if(condition 2) statement 2; . . . ; else statement. N; 3. Switch structure (multiple selection)

If Statement • If no parenthesis, then only the 1 st statement following the

If Statement • If no parenthesis, then only the 1 st statement following the if statement is associated with it if(a > b) c = 3; d = 4; – So d=4; will always be evaluated

If/else Ambiguity • If one if statement doesn’t have an ending else & another

If/else Ambiguity • If one if statement doesn’t have an ending else & another one does, may be ambiguous – Resolved by associating the else with the closest if if(a > b) if(c > d) e = 3; else e = 4; – Must use braces to associate with the outside if if(a > b){ if(c > d) e = 3; } else e = 4;

Switch Statement • • Handles a series of decisions Must include a break statement

Switch Statement • • Handles a series of decisions Must include a break statement – If not, each case statement will be executed until encounter another break statement or reach end • Several cases can execute the same statements – By listing case statements one after another • Can only use char or int data types int i = 5; switch(i){ case 99: . . . char c = 'e'; switch(c){ case 'a': . . .

Example Code • See Example 3. java for examples on – Selection statements •

Example Code • See Example 3. java for examples on – Selection statements • Class exercise – Write a program that prompts the user to enter a letter & outputs on the screen whether the letter is a vowel or consonant • Use method char. At(int position) to access a character (char) in a String • See Coding. java

Vocabulary • Repetition statement – Used to execute statements over and over • •

Vocabulary • Repetition statement – Used to execute statements over and over • • Also called a “loop statement”, or “repetition structure” Uses a boolean expression to repeatedly execute a statement or group of statements – 3 kinds of repetition statements • while, do-while, for

Repetition – 3 Ways 1. while (condition) {statements; } • while(5==5){ System. out. println("infinite

Repetition – 3 Ways 1. while (condition) {statements; } • while(5==5){ System. out. println("infinite loop"); } 2. do{statements} while(condition); • do{ System. out. println("one"); }while(1 < 0); 3. for(initialize; condition; increment/decrement) • for(int i=0; i<50; i=i+10) { System. out. println("five"); }

for = = while • for(expr 1; expr 2; expr 3) statement; – Is

for = = while • for(expr 1; expr 2; expr 3) statement; – Is equivalent to: • expr 1; while(expr 2){ statement; expr 3; } – This will create an infinite loop: • for(; ; ){. . . }

Comma in For Loops • • Can put commas in for loops Evaluated left

Comma in For Loops • • Can put commas in for loops Evaluated left to right int a=0, b=0; for(a=0, b=10; a<b; a++, b--) System. out. println("a="+a+ ", b="+b);

Nested Loops • Can have loops within loops (or any other combination of nested

Nested Loops • Can have loops within loops (or any other combination of nested repetition & selection statements) • for(a=0; a<5; a+=2){ System. out. println("a="+a); for(b=3; b>0; b--){ System. out. println("b="+b); } //inner loop } //outer loop

Alter Flow of Control • break; – Immediately exit from while, for, do/while, or

Alter Flow of Control • break; – Immediately exit from while, for, do/while, or switch statements • continue; – Skips the remaining statements – Performs the next iteration of while, for, or do/while loop

Example Code & Class Exercise • See Example 4. java for examples on –

Example Code & Class Exercise • See Example 4. java for examples on – Repetition statements • Class exercise – Write a program that prompts the user for integer x, then uses x as input for static methods: int Factorial(int x) and instance method int Fibonnaci(int x) • • Static methods of a class can be called from that class’s main method, while instance methods need to be called from an object of that class See Coding 2. java

Vocabulary • The following vocabulary from these slides will be on the next exam

Vocabulary • The following vocabulary from these slides will be on the next exam 1. 2. 3. 4. 5. 6. Primitive data type Wrapper class Boolean expression Flow of control Selection statement Repetition statements