480 likes | 559 Views
Introduction to Java. Main(). Main method is where the program execution begins. There is only one main Displaying the results: System.out.println (“Hi there!”); System.out.println (5+6);. Operators. Relational operators Result is either true or false Equal == Less than <
E N D
Main() • Main method is where the program execution begins. • There is only one main • Displaying the results: System.out.println (“Hi there!”); System.out.println(5+6);
Operators • Relational operators • Result is either true or false • Equal == • Less than < • Less than or equal <= • Larger than > • Larger than or equal >= • 7 >= 8 is true • 6 == 9 is false
Operators • Arithmetic operators • Add + • Subtract - • Multiply * • Divide / • Remainder % • System.out.println(5 + 9); • System.out.println (8 / 2); • System.out.println(8 % 3); • System.out.println(8 / 3);
variables • Variables are used to store and recall results of computations. a=5; b=7; C=4; System.out.println(a+b+c);
variables • Variables are used to store and recall results of computations. a=5; b=7; c=4; System.out.println(a+b+c); c=c+a; System.out.println(a+b+c);
variables • Variables must be declared (defined) • Variables have types • int (whole numbers) • double (decimal ) • int a; • double b;
variables • Variable declaration maps the variable name to a unique memory location • The value of the mapped memory location can be: • changed (assignment) a=5; • looked up System.out.println(a); b=a*0.10;
Strings • A sequence of 0 or more characters String s = "java"; • First character is at position 0; • Characters are accessed via charAt • s.charAt(1) returns 'a' //character 'a' not string "a"
Control structures if (condition) // if condition is true, then stmt1 is stmt1 // executed. If condition is not true, then stmt2 // stmt1 not executed condition is true: stmt1 stmt2 condition is false: stmt2
Control structures if ( a > b) System.out.writeln(“a is larger than b”); System.out.println(“done!!”); a=8; b=3; a=5; b=7; • output: a is larger than b • done!! • output: done!! a > b is true a > b is false
Control structures if (condition) // if condition is true, then stmt1 is stmt1 // executed and stmt2 is not executed. else // If condition is not true (is false), then stmt2 // stmt1 is not executed and stmt2 is executed stmt3 condition is true: stmt1 stmt3 condition is false:stmt2 stmt3
Control structures if ( a > b) System.out.writeln(“a is larger than b”); else System.out.writeln(“a is less than b”); System.out.println(“done!!”); a=8; b=3; a=5; b=7; • output: a is larger than b • done!! • output: a is less than b done!! a > b is true a > b is false
Control structures • More than one statement in the then-part? If ( a > b ) { System.out.println(a); System.out.println(b); System.out.println(“a is larger than b”); }
Control structures • More than one statement in the else-part? If ( a > b ) System.out.println(a-b); else { System.out.println(a); System.out.println(b); System.out.println(“a is less than b”); }
Control structures • More than one statement in the then-part and else-part? If (cond) { … } else { … }
Control structures • Exercise: • Level of service indicates how happy we where with the service we received in a restaurant ( 1 – 10) • Bill is the amount of our bill; • Tip is 10% if the service level was less than 5; • Tip is 15% if the service level is 5 or higher;
Control structures level = 7; amount = 23.97; what are the types? Complete the program
Control structures int level = 7; double amount = 23.97; double topRate, total; if (level < 5) tipRate=0.1; else tipRate=0.15; total = amount + amount *tipRate; System.out.println(total);
input • JOptionPane class • JOptionPane.showInputDialog(null, “Enter the amount”); • Returns the value typed in the text box (as String)
input String s; s=JOptionPane.showInputDialog(null, “Enter the amount”); double amount; amount=Double.parseDouble(s);
For Loops • Loops are used to repeat a part of the program. for (inti=0; i < 10; i=i+1) System.out.print(i); Displays: 1 2 3 4 5 6 7 8 9
For Loops for (initialization; condition; step) body for ( inti=0; i < 10; i=i+1 ) System.out.println(i);
For Loops for (initialization; condition; step) body • initialization is executed only once when the loop starts • Condition is evaluated. • If condition is true: • body is executed • Step is executed after completion of body • Condition is evaluated as in above • If condition is false • body is not executed – execution is continued right after the body
For Loops for (inti=0; i < 3; i=i+1) System.out.println(i); System.out.println(“done”); 1: allocate an integer variable, i, and assign 0 to it 2: evaluate the condition i < 3; i < 3 is true; execute loop body output: 0 3: execute i=i+1; I becomes 1 4: evaluate the condition i< 3; i < 3 is true; execute loop body output: 1
For Loops for (inti=0; i < 3; i=i+1) System.out.println(i); System.out.println(“done”); 5: execute i=i+1; ibecomes 2 2: evaluate the condition i < 3; i < 3 is true; execute loop body output: 2 3: execute i=i+1; I becomes 3 4: evaluate the condition i < 3; i < 3 is false; continue execution right after the loop body output: “done!”
loops • Write a for loop that displays 1, 3, 5, … 99 for (int i = 1; i < 100; i = i + 2) System.out.println(i); • Write a for loop that displays 99, 97, 95, … 1 for (int i = 99; i > 0; i = i - 2) System.out.println(i);
loops • Read a sequence of integers until zero is entered and display the sum of all the numbers that were read • Read and keep a running total until a zero is read!!
Scanner in = new Scanner (System.in); int sum=0; System.out.println("Enter the next value "); for (int next= in.nextInt(); next > 0; next = in.nextInt()) { sum = sum+next; System.out.println("Enter the next value "); } Who understands this?
Scanner in = new Scanner (System.in); int sum=0; int next; System.out.println("Enter the next value"); next = in.nextInt(); while (next > 0) { sum = sum + next; System.out.println("Enter the next value"); next = in.nextInt(); } System.out.println("Sum = " + sum); Who understands this?
while loop while (condition) body • Condition is evaluated. • If condition is true: • body is executed, and then step 1 is repeated. • If condition is false • body is not executed – execution is continued right after the body
while loop • Write a while loop that displays 1, 3, 5, … 99 int value=1; while (value <= 99) { System.out.println(value); value = value +2 }
while loop • Write a while loop that displays 99, 97, 95, … 1 int value=99; while (value >= 1) { System.out.println(value); value = value - 2; }
while loop • Write a while loop that displays 1, 3, 5, … 99, except the numbers that are divisible by 5 int value = 1; while (value <= 99) { if (value % 5 != 0) System.out.println(value); value = value + 1; }
loops • Let s be a String • Write a program that • 1: • displays number of occurrences of letter a in s that appear before letter x in s • in case s does not contain letter x, the program must display 0. • 2: • Displays s in reverse order
String s = "abbcdbz"; char x = 'f'; char a = 'd'; inti = 0; int count = 0; while (i < s.length()) { if (s.charAt(i) == a) { count = count + 1; } if (s.charAt(i) == x) break; // exit the loop i = i + 1; } if (i == s.length()) { // came out of the loop because we didn't see x count = 0; } System.out.println(count); for (i=s.length()-1; i>=0; i=i-1) System.out.print(s.charAt(i)); System.out.println();
Break • Break statement exits the loop while (condition1) { … if (condition2) break; // continue execution from right // after the end of the loop (stmt1) … } stmt1
break • Write all prime numbers between 10 and 1000 booleanprime; inti, j; for (i=10; i<1000; i=i+1) { //pick all numbers between 10 and1000 prime=true; for (j=2; j<i; j=j+1) if (i%j == 0) { prime=false; break; // i is not a prime number exit the loop } if (prime) System.out.println(j); } }
Write a method: intgetGCD(intm, int n) that returns the largest integer that divides both m and n
Public static intgetGCD(intm, int n) { booleanfound = false; if (m > n) { gcd = n; } else { gcd = m; } while (!found) { if (m % gcd == 0 && n % gcd == 0) { found = true; } else { gcd = gcd - 1; } } return gcd; }
Write a boolean method that given an integer m returns true if m is a prime number; Test: Scanner inp = new Scanner(System.in); int x = inp.nextInt(); if (isPrime(x)) { System.out.println(x + " is a prime number"); } else { System.out.println(x + " is not a prime number"); }
Write an integer method that given an integer, m, returns the smallest prime number that is larger than n Test: Scanner inp = new Scanner(System.in); int n = inp.nextInt(); System.out.println(nextPrime(n));
Write a method: intcountVowels(String s) that for a given string s, returns number of vowels in s
Write a method: void multiplication (int n) that for a given parameter n displays a nxn multiplication table
Write a method: void triangle1 (int n) that for a given parameter n displays: 1 1 2 1 2 3 1 2 3 4 1 2 3 4 5 1 2 3 4 5 6
Write a method: void triangle2 (int n) that for a given parameter n displays: 1 2 1 3 2 1 4 3 2 1 5 4 3 2 1 6 5 4 3 2 1
Write a method: void triangle3 (int n) that for a given parameter n displays: 1 2 4 3 6 9 4 8 12 16 5 10 15 20 25 6 12 18 24 30 36
Write a method: char mostOftenIn(String s) that for a given string s, returns the character that occurs most often in s. For example for s = “abcaabbcb” mostOftenIn(s) must return ‘b’