Computer Science 15-110, Spring 2010
Class Notes: Loops (An Introduction)
Loops
class MyCode { public static void main(String[] args) { int counter; for (counter=1; counter<=5; counter++) { System.out.println(counter); } } }
class MyCode { public static void main(String[] args) { int counter; int n = 10; for (counter=1; counter<=n; counter++) { System.out.println(counter); } } }
class MyCode { public static void main(String[] args) { int counter; int n = 10; int sum = 0; for (counter=1; counter<=n; counter++) { sum = sum + counter; } System.out.println(sum); } }
class MyCode {
public static void main(String[] args) {
int counter;
int n = 10;
int sum = 0;
for (counter=1; counter<=n; counter++) {
if (counter % 2 != 0)
sum = sum + counter;
}
System.out.println(sum);
}
}
class MyCode {
public static void main(String[] args) {
int counter;
int n = 10;
int sum = 0;
for (counter=1; counter<=n; counter+=2) {
sum = sum + counter;
}
System.out.println(sum);
}
}
class MyCode { public static void main(String[] args) { int i; // i for index, rather than counter String s = "Carpe diem"; for (i=0; i<s.length(); i++) { char c = s.charAt(i); System.out.println(c); } } }
class MyCode { public static void main(String[] args) { int i; String s = "Carpe diem"; for (i=s.length()-1; i>=0; i--) { char c = s.charAt(i); System.out.println(c); } } }
class MyCode { public static void main(String[] args) { int x = 35; int y = 5; int quotient = 0; while (x >= y) { x -= y; quotient++; } System.out.println(quotient); } }
class MyCode { public static void main(String[] args) { String s1 = "hi"; String s2 = "bonjour"; while (s1.length() < s2.length()) { s1 = s1 + "hi"; } System.out.println(s1); System.out.println(s2); } }
class IsPrimeAndNthPrimeExamples { ////////////////////////////////////////// /// isPrime ////////////////////////////////////////// // Returns true if n is a prime number, and false otherwise. // Do not worry about efficiency (yet). We'll make this faster soon... public static boolean isPrime(int n) { int counter; if (n < 2) return false; for (counter=2; counter<n; counter++) { if (n % counter == 0) return false; } return true; } public static void testIsPrime() { System.out.print("Testing isPrime()... "); assert(isPrime(2)); assert(isPrime(3)); assert(!isPrime(4)); assert(isPrime(5)); assert(!isPrime(6)); assert(isPrime(8179)); assert(!isPrime(8211)); assert(!isPrime(-3)); assert(!isPrime(0)); assert(!isPrime(1)); System.out.println("Passed all tests!"); } ////////////////////////////////////////// /// nthPrime ////////////////////////////////////////// // Returns the nth prime number, or -1 if n is non-positive. // Do not worry about efficiency (yet). We'll make this faster soon... public static int nthPrime(int n) { int counter = 1; int numberOfPrimes = 0; if (n < 1) return -1; while (numberOfPrimes < n) { counter++; if (isPrime(counter)) numberOfPrimes++; } return counter; } public static void testNthPrime() { System.out.print("Testing nthPrime()... "); assert(nthPrime(1) == 2); assert(nthPrime(2) == 3); assert(nthPrime(3) == 5); assert(nthPrime(4) == 7); assert(nthPrime(5) == 11); assert(nthPrime(6) == 13); assert(nthPrime(-5) == -1); assert(nthPrime(0) == -1); System.out.println("Passed all tests!"); } ////////////////////////////////////////// /// main ////////////////////////////////////////// public static void main(String[] args) { testIsPrime(); testNthPrime(); } }
class MyCode { public static void main(String[] args) { int x, y; for (x=1; x<=4; x++) { for (y=1; y<=4; y++) System.out.print("(x=" + x + ",y=" + y + ") "); System.out.println(); } } }
Output:
(x=1,y=1) (x=1,y=2) (x=1,y=3) (x=1,y=4) (x=2,y=1) (x=2,y=2) (x=2,y=3) (x=2,y=4) (x=3,y=1) (x=3,y=2) (x=3,y=3) (x=3,y=4) (x=4,y=1) (x=4,y=2) (x=4,y=3) (x=4,y=4)
import java.awt.*; import javax.swing.*; class MyGraphics extends JComponent { public void paint(Graphics page) { int rows=5, cols=7; int row, col; for (row=0; row<rows; row++) for (col=0; col<cols; col++) paintCell(page, row, col, rows, cols); } // Helper method to paint a single cell in the 2d grid public void paintCell(Graphics page, int row, int col, int rows, int cols) { int width = getWidth(); int height = getHeight(); int left = col * width / cols; int top = row * height / rows; int right = (col+1) * width / cols; int bottom = (row+1) * height / rows; // paint the grid's outline page.setColor(Color.black); page.drawRect(left, top, right-left, bottom-top); // fill the cell page.setColor(Color.blue); page.fillOval(left, top, right-left, bottom-top); // label the cell page.setColor(Color.black); page.setFont(new Font("Arial", Font.BOLD, 14)); String label = row + "," + col; drawCenteredString(page, label, left, top, right-left, bottom-top); } // As with any "gray code", you should know how to USE this code but // you do not have to know how to WRITE it (that is, you may copy+paste // it into your code as needed). public void drawCenteredString(Graphics page, String s, int left, int top, int width, int height) { // Center text within the given rectangular bounds FontMetrics fm = page.getFontMetrics(page.getFont()); int textX = left + (width - fm.stringWidth(s))/2; int textY = top + (height - fm.getHeight())/2 + fm.getAscent(); page.drawString(s, textX, textY); } ////////////////////////////////////////////// /// END OF YOUR CODE /// /// (you may ignore all the code below!!! /// ////////////////////////////////////////////// public Dimension getPreferredSize() { int initialWidth = 500; int initialHeight = 400; return new Dimension(initialWidth, initialHeight); } public static void main(String[] args) { JComponent jc = newInstance(); JFrame frame = new JFrame(jc.getClass().getName()); frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); JPanel cp = new JPanel(); cp.setLayout(new BorderLayout()); cp.add(jc); frame.setContentPane(cp); frame.pack(); frame.setVisible(true); } // Returns an instance of this class as a JComponent. This is necessary so // students can rename this class without changing the "main" method's body. public static JComponent newInstance() { StackTraceElement[] trace = null; try { throw new RuntimeException(); } catch (Exception e) { trace = e.getStackTrace(); } try { return (JComponent)Class.forName(trace[0].getClassName()).newInstance(); } catch (Exception e) { return null; } } }
Output:
carpe diem - carpe diem - carpe diem - carpe diem - carpe diem - carpe diem - carpe diem - carpe diem - carpe diem