Survey
* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project
* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project
Loops Chapter 4 “while” structures • It repeats a set of statements while a condition is true. while (condition) { execute these statements; } “while” structures • It repeats a set of statements while a condition is true. while ( condition ) 1 { execute these statements; } 2 3 The dynamics of “while” 1. Evaluate condition: • if TRUE go to 2 • If FALSE go to 3 2. Execute statements, and then go to 1 3. Continue with next statement. “while” structures • It repeats a set of statements while a condition is true. int speedLimit = 55; int speed = 0; while ( speed <= speedLimit ) { speed = speed + 1; } // since we don’t want a ticket… speed = speed - 1; • What is the value of “speed” after the last statement? A. B. C. D. E. 55 54 56 0 none of the above “while” structures • It repeats a set of statements while a condition is true. int speedLimit = 55; int speed = 0; 1 initialize variables in conditional while ( speed < speedLimit ) 2 { modify variables speed = speed + 1; in conditional } // since we don’t want a ticket… speed = speed - 1; • “while” structures: Exercises Determine the output of the following methods: public void foo1() { int i=0; while (i <= 20) { System.out.println( i ); i = i + 4; // or i+= 4; } } A. B. C. D. E. 0 4 8 12 16 20 4 8 12 16 0 4 8 12 16 20 24 0 4 8 12 16 none of the above (on separate lines) public void foo2() { A. 20 10 5 2.5 1.25 int i = 20; B. 10 5 2 1 0 while (i > 0) { C. 20 5 2 1 D. 20 5 2 1 0 i = i / 2; System.out.println( i ); E. none of the above (on separate lines) } } Computer Work 1. Write a program that reads an integer, and displays (using System.out.println) all numbers from the number down to 0. • For example, if 8 is entered, the program should display numbers 7, 6, 5, 4, 3, 2, 1, 0, in this order and with each number in one line. 2. Write a program that reads an integer, and displays (using System.out.println) all even numbers between 0 and the number received, and finally the number of numbers displayed. • For example, if the parameter was 8, the method should display numbers 2, 4 and 6, in this order and with each number in one line, and return a value of 3 (which is how many even numbers were between 0 and 8). “for” structures • It (also) repeats statements while a condition is true. Works best when loop will be repeated a known number of times 1 2 4 loop initial modify for ( statement ; condition; statement ) { statements; 3 } 5 The dynamics of “for” 1. Initialize condition variables. 2. Evaluate loop condition: • if TRUE go to 3 • If FALSE go to 5 3. Execute statements; then go to 4 4. Modify condition variables; then go to 2 5. Continue with next statements. prime using for Write a program that prints “yes” or “no” to indicate whether an integer parameter named number is a prime number. Use a for loop. How to write Java: Answer the questions: Exactly how do you do this? What is a step by step description? WRITE IN ENGLISH. NOT Java or Draw pictures. or both Debug the English: Trace through with numbers. especially with going through the loop 0 times, 1 time, >= 1 times. Fix the ENGLISH. 1. Brainstorm. How do you figure out if a number is prime? prime(11) prime(12). Talk to each other. 2. Write an algorithm for that 3. Translate the algorithm to Java Prime Number Program import java.util.Scanner; public class Prime { public static void main(String[ ] args) { Scanner kbd = new Scanner(System.in); System.out.print("Enter a number: "); int nbr = kbd.nextInt( ); if (nbr < 2) // only look at positive numbers { System.out.println("no"); System.exit(0); // means leave the program right now } for (int i=2;i<nbr;i++) for loop { if (nbr % i == 0) { System.out.println("no"); System.exit(0); Leaves loop and program } } System.out.println("yes"); outside the loop } } Embedded loops • Write a program to draw a square box after reading in its size 1. Write the first line (for loop printing n stars) 2. println 3. for each internal line (n-2 of them) a. print a * b. print n-2 spaces c. println a * 4. print the last line import java.util.Scanner; public class DrawStars { public static void main(String[ ] args) { Scanner kbd = new Scanner(System.in); System.out.print("Enter a number: "); int nbr = kbd.nextInt( ); if (nbr < 2) // only look at positive numbers System.exit(0); // means leave the program right now // do first line for (int i=0;i<nbr;i++) System.out.print("*"); // add enter System.out.println( ); // nothing in parentheses // continued on next page // print n-2 internal lines for (int i=0;i<nbr-2;i++) // i is never used. it only counts { // nbr of times through loop // print first character on line System.out.print("*"); // print number of spaces minus one * on each end for (int j=0;j<nbr-2;j++) // embedded loop for one internal line System.out.print(" "); // single space in between quotes // print last * on line -- also put enter in there System.out.println("*"); } // and outer for loop that does all internal lines // print last line. same as first line for (int i=0;i<nbr;i++) System.out.print("*"); System.out.println( ); // nothing in parentheses } // end main } // end class Embedded Loop Practice • Write a loop that prints a times table 0-2: 0 01 2 1. Write the first line 0 00 0 2. for each number on the left (0, 1, 2) 1 01 2 a. print the left number (the LHS of 2 02 4 the table) 2a b. for each number on the right (0, 1, 2) i. print the product c. println.