for – while – switch

Post on 17-Jan-2016

62 Views

Category:

Documents

0 Downloads

Preview:

Click to see full reader

DESCRIPTION

for – while – switch. ผศ.ดร.อนันต์ ผลเพิ่ม Anan Phonphoem http://www.cpe.ku.ac.th/~anan anan@cpe.ku.ac.th. Loops. Repeating a calculation for a number of times Each repetition of the loop is a pass Two types of loops (In MATLAB) for loop while loop. Set loop variable = m. - PowerPoint PPT Presentation

TRANSCRIPT

1

for – while – switch

ผศ.ดร.อนั�นัต์ ผลเพิ่��มAnan Phonphoem

http://www.cpe.ku.ac.th/~anananan@cpe.ku.ac.th

2

Loops

Repeating a calculation for a number of times

Each repetition of the loop is a pass Two types of loops (In MATLAB)

for loop while loop

3

for loops

for loop var = m:s:n statementsend

Variable > nTrue

False

Increment variable by s

Set loop variable = m

Statements

4

for loops (Example)

for a = 1:2:10 total = total + aend

a > 10True

False

a = a + 2

a = 1

total = total +a

5

break command

To abnormally jump out of the loop before its end

6

Find the answer of the program

for num = 10:-2:0 disp(num); temp = 2*num - 10; solution = temp + 5;endsolution = solution - 10

>> cmd1 10 8 6 4 2 0

solution = -15

Resultscmd1.m

7

break example

% showing ‘break’ commandfor num = 10:-2:0 disp(num); temp = 2*num - 10; if (temp <= 0) break end solution = temp + 5;endsolution = solution - 10

>> cmd2 10 8 6 4

solution = -3

Resultscmd2.m

8

continue command

To skip for some cases and continue execute the rest of the loop

For example, skip the error that might happen

9

continue example

a = [100 0 10 -10];for k = 1:length(a) solution = 1000/a(k)end

>> cmd3solution = 10Warning: Divide by zero.> In cmd3 at 3solution = Infsolution = 100solution = -100

Resultscmd3.m

10

continue example

% showing ‘continue’ commanda = [100 0 10 -10];for k = 1:length(a) if (a(k)== 0) continue end solution = 1000/a(k)end

>> cmd4solution = 10

solution = 100

solution = -100

Resultscmd4.m

11

while loop

Looping process is terminated based on the specified condition

12

conditionFalse

True

Statements

while loops

while condition statementsend

Set loop variable = m

Increment variableWithout the , no way to get out of the loop.

It’s called “infinite loop”

13

while example (I)

while k > 0 disp(k);end

>> cmd5??? Undefined function or variable "k".

Error in ==> cmd5 at 1while k > 0

Results

cmd5.m

14

while example (II)

k = 5;while k > 0 disp(k);end

>> cmd6 5 5 5 5 …

Results

cmd6.m

To break the programPress “Ctrl-C”

15

while example (III)

k = 5;while k > 0 disp(k); k = k-1;end

>> cmd7 5 4 3 2 1

Resultscmd7.m

16

while and for loop

% showing ‘break’ commandfor num = 10:-2:0 disp(num); temp = 2*num - 10; if (temp <= 0) break end solution = temp + 5;endsolution = solution - 10

cmd2.m Rewrite the programBy using “while”

17

while and for loop

% using whilenum = 10;temp = 2*num - 10; while temp > 0 disp(num); solution = temp+5; temp = 2*num -10; num = num-2;endsolution = solution - 10

cmd8.m

18

Nested Logic

condition1 FalseTrue

Statement1condition2

FalseTrue

Statement3Statement2

if logical exp1 statement g1elseif logical exp2 statement g2else statement g3end

19

if-else and switch comparison

switch input expression case value1 statement g1 case value2 statement g2 otherwise statement g3end

if logical exp1 statement g1elseif logical exp2 statement g2else statement g3end

20

Nested Logic – (Example)

a == 20 FalseTrue

c = a * 2 c == 30

FalseTrue

c = 0c = a + 2

if a == 20 c = a * 2elseif a == 30 c = a + 2else c = 0 end

switch a case 20 c = a * 2 case 30 c = a + 2 otherwise c = 0 end

21

switch

switch input expression case value1 statement group 1 case value2 statement group 2 case value1 statement group 3 ... otherwise statement group nend

22

switch example (I)

response = input(‘Type like, hate, or ok: ’,’s’);switch response case ‘like’ disp(‘I really like it’); case ‘hate’ disp(‘I do not like it’); case ‘ok’ disp(‘It is ok’); otherwise disp(‘Your enter is wrong’);end

cmd9.m

23

switch example (I)

>> cmd9Type like, hate, or ok: likeI really like it>> cmd9Type like, hate, or ok: hateI do not like it>> cmd9Type like, hate, or ok: abcYour enter is wrong >> cmd9Type like, hate, or ok: LikeYour enter is wrong

24

Can you make it better ?

25

while true response = input(‘Type like,hate,ok, or quit:’,’s’); response = lower(response); switch response case ‘like’ disp(‘I really like it’); case ‘hate’ disp(‘I do not like it’); case ‘ok’ disp(‘It is ok’); case ‘quit’ break otherwise disp(‘Your enter is wrong’); end %end switchend %end while

switch example (II)cmd10.m

26

switch example (II)

>> cmd10Type like, hate, ok, or quit: likeI really like itType like, hate, ok, or quit: HateI do not like itType like, hate, ok, or quit: abcYour enter is wrongType like, hate, ok, or quit: quit>>

top related