cpsc233 branching - university of...

19
cpsc233 Branching Monir Zaman

Upload: donga

Post on 12-May-2018

223 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: cpsc233 Branching - University of Calgarypages.cpsc.ucalgary.ca/~mmoniruz/233/tempTutBranchingI.pdfCopyright © 2012 Pearson Addison-Wesley. All rights reserved. Precedence and Associativity

cpsc233 Branching

Monir Zaman

Page 2: cpsc233 Branching - University of Calgarypages.cpsc.ucalgary.ca/~mmoniruz/233/tempTutBranchingI.pdfCopyright © 2012 Pearson Addison-Wesley. All rights reserved. Precedence and Associativity

Hint: solve the problem for n=10 first, then try with n=50 , n=100

Step 1: Take input from user and assign it to x Also, print the value of x // You need java.util.Scanner Scanner sob=new Scanner(System.in); int x=sob.nextInt();

Page 3: cpsc233 Branching - University of Calgarypages.cpsc.ucalgary.ca/~mmoniruz/233/tempTutBranchingI.pdfCopyright © 2012 Pearson Addison-Wesley. All rights reserved. Precedence and Associativity

Lexicographic and Alphabetical Order

• Lexicographic ordering is the same as ASCII ordering

“….ABCDEFGHIJKLMNOPQRSTUVWXYZ…… abcdefghijklmnopqrstuvwxyz…”

int compareTo(String) s1.compareTo(s2)

returns 0 if s1=s2

-ve if s1 appears before than s2

+ve if s1 appears after s2

3-3

Page 4: cpsc233 Branching - University of Calgarypages.cpsc.ucalgary.ca/~mmoniruz/233/tempTutBranchingI.pdfCopyright © 2012 Pearson Addison-Wesley. All rights reserved. Precedence and Associativity

String s1=“iPhone5”;

if(s1.compareTo(“iphone5”)>0)

System.out.println( “s1 is behind”);

Page 5: cpsc233 Branching - University of Calgarypages.cpsc.ucalgary.ca/~mmoniruz/233/tempTutBranchingI.pdfCopyright © 2012 Pearson Addison-Wesley. All rights reserved. Precedence and Associativity

String s1=“iPhone5”;

if(s1.compareTo(“iphone5”)>0)

System.out.println( “s1 is behind”);

else

System.out.println( “s1 is ahead”);

Page 6: cpsc233 Branching - University of Calgarypages.cpsc.ucalgary.ca/~mmoniruz/233/tempTutBranchingI.pdfCopyright © 2012 Pearson Addison-Wesley. All rights reserved. Precedence and Associativity

String s1=“iPhone5”;

if(s1.compareTo(“iphone5”)>0)

System.out.println( “s1 is behind”);

else if(s1.compareTo(“iphone5”)<0)

System.out.println( “s1 is ahead”);

else

System.out.println( “Two strings are equal”);

Page 7: cpsc233 Branching - University of Calgarypages.cpsc.ucalgary.ca/~mmoniruz/233/tempTutBranchingI.pdfCopyright © 2012 Pearson Addison-Wesley. All rights reserved. Precedence and Associativity

String s1=“iPhone5”;

if(s1.compareToIgnoreCase(“iphone5”)>0)

System.out.println( “s1 is behind”);

else if(s1.compareToIgnoreCase(“iphone5”)<0)

System.out.println( “s1 is ahead”);

else

System.out.println( “Two strings are equal”);

Page 8: cpsc233 Branching - University of Calgarypages.cpsc.ucalgary.ca/~mmoniruz/233/tempTutBranchingI.pdfCopyright © 2012 Pearson Addison-Wesley. All rights reserved. Precedence and Associativity

Logical operators

• &&

• ||

• !

• &

• |

Page 9: cpsc233 Branching - University of Calgarypages.cpsc.ucalgary.ca/~mmoniruz/233/tempTutBranchingI.pdfCopyright © 2012 Pearson Addison-Wesley. All rights reserved. Precedence and Associativity

long[] num={3, 6, 8}; for(int j=0;j<num.length;j++){ if (num[j]%2 ==0 && num[j]>5) System.out.println(":)"); else System.out.println(":("); }

Page 10: cpsc233 Branching - University of Calgarypages.cpsc.ucalgary.ca/~mmoniruz/233/tempTutBranchingI.pdfCopyright © 2012 Pearson Addison-Wesley. All rights reserved. Precedence and Associativity

Truth Tables

3-10 Copyright © 2012 Pearson Addison-Wesley. All rights

reserved.

Page 11: cpsc233 Branching - University of Calgarypages.cpsc.ucalgary.ca/~mmoniruz/233/tempTutBranchingI.pdfCopyright © 2012 Pearson Addison-Wesley. All rights reserved. Precedence and Associativity

logical operators

c=2; e=55;

if ( c==1 & e++ < 100 )

d=100;

System.out.println(e);

Page 12: cpsc233 Branching - University of Calgarypages.cpsc.ucalgary.ca/~mmoniruz/233/tempTutBranchingI.pdfCopyright © 2012 Pearson Addison-Wesley. All rights reserved. Precedence and Associativity

Short circuit logical operators

c=2; e=55;

if ( c==1 && e++ < 100 )

d=100;

System.out.println(e);

Page 13: cpsc233 Branching - University of Calgarypages.cpsc.ucalgary.ca/~mmoniruz/233/tempTutBranchingI.pdfCopyright © 2012 Pearson Addison-Wesley. All rights reserved. Precedence and Associativity

Logical operators

c=1; e=55;

if ( c==1 | e++ < 100 )

d=100;

System.out.println(e);

Page 14: cpsc233 Branching - University of Calgarypages.cpsc.ucalgary.ca/~mmoniruz/233/tempTutBranchingI.pdfCopyright © 2012 Pearson Addison-Wesley. All rights reserved. Precedence and Associativity

Short circuit logical operators

c=1; e=55;

if ( c==1 || e++ < 100 )

d=100;

System.out.println(e);

Page 15: cpsc233 Branching - University of Calgarypages.cpsc.ucalgary.ca/~mmoniruz/233/tempTutBranchingI.pdfCopyright © 2012 Pearson Addison-Wesley. All rights reserved. Precedence and Associativity

3-15 Copyright © 2012 Pearson Addison-Wesley. All rights

reserved.

Precedence and

Associativity Rules

Page 16: cpsc233 Branching - University of Calgarypages.cpsc.ucalgary.ca/~mmoniruz/233/tempTutBranchingI.pdfCopyright © 2012 Pearson Addison-Wesley. All rights reserved. Precedence and Associativity

3-16 Copyright © 2012 Pearson Addison-Wesley. All rights

reserved.

int a=4; double b=8.0; a == (int) b / 2

Page 17: cpsc233 Branching - University of Calgarypages.cpsc.ucalgary.ca/~mmoniruz/233/tempTutBranchingI.pdfCopyright © 2012 Pearson Addison-Wesley. All rights reserved. Precedence and Associativity

3-17 Copyright © 2012 Pearson Addison-Wesley. All rights

reserved.

int a=4; double b=8.0; a == (int) b / 2

(a == ( ((int) b) / 2 ) ) Binding>

Page 18: cpsc233 Branching - University of Calgarypages.cpsc.ucalgary.ca/~mmoniruz/233/tempTutBranchingI.pdfCopyright © 2012 Pearson Addison-Wesley. All rights reserved. Precedence and Associativity

The Comma in for Statements

• A for loop can contain multiple initialization actions separated with commas; it is best to declare all variables outside the for statement

• A for loop can contain multiple update actions, separated with commas, It is even possible to eliminate the loop body in this way

• However, a for loop can contain only one Boolean expression to test for ending the loop

• Loops that check for equality or inequality (== or !=) are especially prone to ‘infinite loop’ error and should be avoided if possible

int k,b,sum;

for(sum=0,i=0;i<5;sum+=i++) ;

3-18 Copyright © 2012 Pearson Addison-Wesley. All rights

reserved.

Page 19: cpsc233 Branching - University of Calgarypages.cpsc.ucalgary.ca/~mmoniruz/233/tempTutBranchingI.pdfCopyright © 2012 Pearson Addison-Wesley. All rights reserved. Precedence and Associativity

Debugging Example (1 of 9) • The following code is supposed to present a

menu and get user input until either ‘a’ or ‘b’ is entered.

3-19 Copyright © 2012 Pearson Addison-Wesley. All rights

reserved.

String s = "";

char c = ' ';

Scanner keyboard = new Scanner(System.in);

do

{

System.out.println("Enter 'A' for option A or 'B' for option B.");

s = keyboard.next();

s.toLowerCase();

c = s.substring(0,1);

}

while ((c != 'a') || (c != 'b'));