teaching machines

CS 145 Lecture 9 – Loops: for and while

Agenda

  • exam coming up!
  • for loop problems
    • digitizing a circle
    • spreadsheet fill
  • for (INIT; TEST; UPDATE) {
      ACTION
    }
  • INIT
    while (TEST) {
      ACTION
      UPDATE
    }
  • while loop problems
    • summing an indefinite number of numbers
    • checking for repeated words
    • decomposing a comma-separated list
    • prompting for an actual file

TODO

  • Read chapter 3 (mostly discussed already) and section 4.1.

Testing pattern

For non-real primitives:

System.out.println(EXPECTED == ACTUAL);
System.out.println(2 == getParentCount()); // for example

For float and double:

System.out.println(Utilities.equalsEnough(EXPECTED, ACTUAL));
System.out.println(Utilities.equalsEnough(3.14159, getPi()); // for example

For objects:

System.out.println(ACTUAL.equals(EXPECTED));
System.out.println(sortedVowels.equals("aeiou")); // for example

Code

MoreFor.java

package preexam1;

public class MoreFor {
  public static void main(String[] args) {
    fillDown(3, 1, 10);
//    makeCircle(10);
  }
  
  public static void fillDown(int first, int second, int n) {
    int diff = second - first;
    
    for (int i = 0; i < n; ++i) {
      System.out.println(first + diff * i);
    }
    
    System.out.println("------------");
    
    for (int i = first; i < first + diff * n; i += diff) {
      System.out.println(i);
    }
  }

  public static void makeCircle(int n) {
    double jump = 360.0 / n;

    for (int i = 0; i < n; ++i) {
      // System.out.println(i);

      double theta = i * jump;

      double x = Math.cos(Math.toRadians(theta));
      double y = Math.sin(Math.toRadians(theta));

      System.out.println(x + "," + y);
    }
  }
}

While.java

package preexam1;

import java.util.Scanner;

public class While {
  public static void main(String[] args) {
    Scanner in = new Scanner(System.in);
    
    int sum = 0;
    
    while (in.hasNextInt()) {
      int i = in.nextInt();
      sum += i;
    }
    
    System.out.println(sum);
    
    
    String team = "Joel,John,Patrick,Brian,Phil,Michael";
    Scanner teamParser = new Scanner(team);
    teamParser.useDelimiter(",");
    
    int i = 1;
    while (teamParser.hasNext()) {
      String member = teamParser.next();
      System.out.println(i + ". " + member);
      i++;
    }
  }
}

Haiku

Life can feel loopish.
Wake, eat, class, eat, work, eat, sleep…
You need some Random.

Comments

Leave a Reply

Your email address will not be published. Required fields are marked *