Download Lec. 01: Java Fundamentals

Survey
yes no Was this document useful for you?
   Thank you for your participation!

* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project

Document related concepts

Abstraction (computer science) wikipedia , lookup

Programming language wikipedia , lookup

Functional programming wikipedia , lookup

Scala (programming language) wikipedia , lookup

Object-oriented programming wikipedia , lookup

Falcon (programming language) wikipedia , lookup

Go (programming language) wikipedia , lookup

Reactive programming wikipedia , lookup

Java syntax wikipedia , lookup

Java (programming language) wikipedia , lookup

?: wikipedia , lookup

One-pass compiler wikipedia , lookup

Indentation style wikipedia , lookup

Java performance wikipedia , lookup

C Sharp syntax wikipedia , lookup

C syntax wikipedia , lookup

For loop wikipedia , lookup

C Sharp (programming language) wikipedia , lookup

Structured programming wikipedia , lookup

Transcript
Java Programming
JAVA PROGRAMMING 2
CH 03: CONTROL STATEMENTS
0
if, for loop (review)
switch, while, do while
break, continue
CONTENT
Condition construct: if [review]
 Condition construct: switch
 Iteration construct: for [review]
 Iteration construct: while and do-while
 Nested constructs
 Special control instructions: break and continue

Java Programming
1
CATEGORIES OF FLOW CONTROL

Sequential

Selection


Selection is the flow type where one path out of a number of
possibilities is taken.
Iteration


Java Programming

Sequential is the flow type where instructions are executed one after
another, from top to bottom.
Iteration is the flow type where one or more instructions is executed
repeatedly if certain conditions are fulfilled.
Transfer

Transfer is the flow type where the point of execution jumps to a
different point in the program.
 Using transfer is considered as a poor programming style and makes
the code maintenance difficult.
 Java only supports the forward transfer, which transfer the
execution point to a point beyond the current execution point.

Sometimes forward transfer makes the code less complex.
2
if-CONSTRUCT
Syntax form

if(<condition>) statement
else statement
if and else parts control a single statement.



Java Programming

If more than one statement needed to be controlled, use code block.
The else part is optional.
The else part must be associated with an if-part if it exists.
if( i > 0 ) a++; // this if statement is terminated here
b++; // since the target of if statement is a single statement
else c++;


// if( i > 0 ) statement is terminated here
// no if part to match, so it’s illegal
The condition expression must be a boolean expression.
If the conditional expression is true, the target of the if will be
executed; otherwise, if it exists, the target of the else will be
executed.
3
FLOWCHART FOR if-CONSTRUCT
Java Programming
<condition>
false
true
Statement
Statement
4
Next
statement
NESTED if-CONSTRUCT
A nested if-construct is an if statement that is the target of
another if or else.
 An else statement always refers to the nearest if
statement that is within the same block as the else and
not already associated with an else.

Java Programming
5
EXAMPLES OF NESTED IF-CONSTRUCT

Example 1

Example 2
Java Programming
if(i == 10) {
if(j < 20) a = b;
if(k > 100) c = d;
else a = c; // this else refers to if(k > 100)
}
else a = d; // this else refers to if(i == 10)
Java’s syntax is free of position!
Using proper indentation makes
programs clearer!
if(i == 10) {
if(j < 20) {
a = b;
if(k > 100) c = d;
}
else a = c; // this else refers to if(j<20)
}
else a = d; // this else refers to if(i == 10)
6
switch-CONSTRUCT
The switch-construct enables a program to select among
several alternatives.
 Syntax form

Java Programming
switch(<expression>) {
case <constant1>:
statement sequence
break;
case <constant2>:
statement sequence
break;
case <constant3>:
statement sequence
break;
…
default:
statement sequence
}
7
Executing switch-CONSTRUCT
Evaluating <expression> and comparing the result
sequentially, from top to bottom, with constants
following case-clauses.
 When a match is found, the statements associated with
that case are executed until the break is encountered or,
in the case of default or the last case, until the end of the
switch is reached.
 The default statement sequence, if it exists, is executed if
no case constant matches the expression.

Java Programming
The default-clause is optional.
 If default-clause is not present, no action takes place if all
matches fail.

8
SYNTAX RULES FOR switch-CONSTRUCT
Prior to JDK 7, the <expression> controlling the switch
must be of type byte, short, int, char, or enum.
 Beginning with JDK 7, <expression> can also be of type
String.
 Each value specified in the case clauses must be a unique
constant expression.


Java Programming

A constant expression is a expression which can be evaluated
during the compiling time.
The type of each value specified in the case clauses must
be compatible with the type of <expression> .
9
DEMO SEGMENT FOR switch-CONSTRUCT
Java Programming
switch (month) {
case 1:
case 3:
case 5:
case 7:
case 8:
case 10:
case 12 :
System.out.println(“There are 31 days");
break;
case 2:
System.out.println(“There are 28 or 29 days");
break;
case 4:
case 6:
case 9:
case 11:
System.out.println(“There are 30 days");
break;
default:
System.out.println("Invalid month.");
}
10
LOOPING

Java provides four types of looping (iteration) statements
Traditional for
 while
 do-while
 Enhanced for


Java Programming

Supported after Java 2 version 1.5
All looping have 4 parts

Initialization
 Iteration condition
 Body
 Termination condition
11
TRADITIONAL for-CONSTRUCT

Syntax of while-statement
Java Programming
init-_exp
for ( <init_exp> ; <test_exp> ; <post_exp> )
single-statement;
Example
Test_ exp
int sum = 0;
for(int count=0; count<=n; ++count ) {
sum += count;
} // count does not exist after this point
false
post-_exp
true
statement
12
Next
statement
MORE ON for-CONSTRUCT
Fall. 2014
Java Programming
The type of control variable can be any numeric types
and char.
 The loop control variable can be modified by any amount
in <post-exp>.
 It is a pre-condition looping.

The <post-exp> is tested at the beginning of each loop.
 The code inside the loop may not be executed at all.


The <init-exp> and <post-exp> may consist of more than
one expression separated by comma.
int i, j;
for(i=0, j=i+10; i < j; i++, j--)
System.out.println("i and j: " + i + " " + j);
13
MORE ON for-CONSTRUCT

The <test-exp> must be a boolean expression.

It does not need to involve the loop control variable.


Java Programming
All of the <init-exp> , <test-exp> and <post-exp> are
option, but all three semicolons are not.
 Missing <test-exp> means the result of <test-exp> is
always true.

The simplest for-construct for(;;); will perform nothing for
ever.
When you declare a variable inside a for loop, the scope
of that variable ends when the for statement does.
for( int i = 0; i < 100; i++) sum += i;
System.out.print(sum / i); // illegal since i is not declared
14
while-CONSTRUCT

Example
int sum = 0;
int count = 0;
while ( count <= n ) {
sum += count;
count++;
}
The while statement is a pre-test looping.
<condition>
false
Java Programming
Syntax of while statement
while ( <condition> )
single-statement;
true
statement
Next
statement
15
do-while-CONSTRUCT

Syntax of do-while statement
Java Programming
do
single-statement;
while ( <condition> );
statement
Example
int sum = 0;
int count = 0;
do {
sum += count;
count++;
} while ( count <= n );
false
<condition>
true
The do-while statement is a post-test
looping.
Next
statement
16
break STATEMENT
The break statement is used to force an immediate exit
from a loop enclosing the statement, bypassing any
remaining code in the body of the loop and the loop’s
conditional test.
 The break statement can be only used within a loop body
or the body of switch-construct.

Java Programming
17
DEMO PROGRAM FOR BREAK STATEMENT
Java Programming
// Using break with nested loops.
class Break3 {
public static void main(String args[]) {
for(int i=0; i<3; i++) {
System.out.println("Outer loop count: " + i);
System.out.print(" Inner loop count: ");
int t = 0;
while(t < 100) {
if(t == 10) break;//terminate while loop if t is 10
System.out.print(t + " ");
t++;
}
System.out.println();
}
System.out.println("Loops complete.");
}
}
18
break STATEMENT WITH LABEL

The break statement with label can be used to terminate the
execution of a code block.





Syntax form for break statement with label
break <label>;
A label is the identifier used to identify a code block or a statement.
Syntax form for labeling code block
<label>: { <statement sequences> }
When this form of break executes, control is transferred out of the
named code block or statement.
The labeled code block or statement must enclose the break
statement, but it does not need to be the immediately enclosing
block.

This means that you can use a labeled break statement to exit from a set
of nested blocks.
Java Programming

The code block terminated by using a break statement with label does
not need to be the body of loop or switch.
19
DEMO PROGRAM FOR break STATEMENT WITH
LABEL
Fall. 2014
// Using break with a label.
class Break4 {
public static void main(String args[]) {
int i;
for(i=1; i<4; i++) {
one: {
two: {
three: {
System.out.println("\ni is " + i);
if(i==1) break one;
if(i==2) break two;
if(i==3) break three;
System.out.println("won't print");
// this is never reached
}
System.out.println("After block three.");
}
System.out.println("After block two.");
}
System.out.println("After block one.");
20
}
System.out.println("After for.");
}
}
Java Programming
TRY THIS …
Fall. 2014
class Break6 {
public static void main(String args[]) {
int x=0, y=0;
// here, put label before for statement.
stop1: for(x=0; x < 5; x++) {
for(y = 0; y < 5; y++) {
if(y == 2) break stop1; // stop the for loop
System.out.println("x and y: " + x + " " + y);
}
}
System.out.println();
// now, put label immediately before {
for(x=0; x < 5; x++){
stop2: {
for(y = 0; y < 5; y++) {
if(y == 2) break stop2;
// stop the body of for, not for
System.out.println("x and y: " + x + " " + y);
}
}
}
21
}
}
Java Programming
continue-CONSTRUCT
The continue statement forces the next iteration of the
loop to take place, skipping any code between itself and
the conditional expression that controls the loop.
 In while and do-while loops, a continue statement will
cause control to continues the loop by directly evaluating
the <test-exp>.
 In the case of the for, the <post-exp> of the loop is
evaluated, then the loop continues by evaluating the
<test-exp>.

Java Programming
22
DEMO PROGRAM FOR continue-CONSTRUCT
// continuing the next loop
System.out.println(i);
}
}
}
Java Programming
// Use continue.
class ContDemo {
public static void main(String args[]) {
int i;
// print even numbers between 0 and 100
for(i = 0; i<=100; i++) {
if((i%2) != 0) continue;
// skipping the println and
The boolean
expression is true for
23
odd number.
continue STATEMENT WITH LABEL
The continue may specify a label to describe which
enclosing loop to continue.
 The statement labeled by a label used with continue
statement must be a loop statement.

Java Programming
24
DEMO PROGRAM FOR continue STATEMENT
WITH LABEL
Java Programming
// Use continue with a label.
class ContToLabel {
public static void main(String args[]) {
outerloop:
for(int i=1; i < 10; i++) {
System.out.print("\nOuter loop pass " + i
+ ", Inner loop: ");
for(int j = 1; j < 10; j++) {
if(j == 5) continue outerloop;
// continue outer loop
System.out.print(j);
}
}
}
}
25