import javax.swing.JOptionPane; public class Ch6 { int i, sum; // prints 4 rows of output: public void whileLoop1() { i = 0; sum = 0; while (sum < 10) { i++; sum = sum + i; System.out.println("i: " + i + " sum: " + sum); } } // has an infinite loop: public void whileLoop2() { i = 0; sum = 0; while (sum < 10) { i++; sum = sum - i; System.out.println("i: " + i + " sum: " + sum); } } // loop never runs: public void whileLoop3() { i = 0; sum = 0; while (sum < 0) { i++; sum = sum - i; System.out.println("i: " + i + " sum: " + sum); } } // loop never runs: public void whileLoop4() { i = 0; sum = 0; while (sum >= 10) { i++; sum = sum + i; System.out.println("i: " + i + " sum: " + sum); } } // infinite loop. the semi-colon after the while statement // ends the loop. since 'sum' is always less than 10, // the loop runs forever. public void whileLoop5() { i = 0; sum = 0; while (sum < 10) ; { i++; sum = sum + i; System.out.println("i: " + i + " sum: " + sum); } } // how long will it take to reach a financial goal? public void addInterest() { double interestRate = 0.04; double goal = 1000; double balance = 500; int years = 0; while (balance < goal) { double interest = balance * interestRate; balance = balance + interest; years++; String msg = "After " + years + " years, the balance is "; msg += balance; System.out.println(msg); } String msg = "After " + years + " years, the balance is "; msg += balance; System.out.println(msg); } public void forLoops() { int i; // prints 0 1 2 3 4 5 for (i = 0; i <= 5; i++) System.out.print(i + " "); // prints 5 4 3 2 1 0 for (i = 5; i >= 0; i--) System.out.print(i + " "); // prints 0 2 4 6 8 for (i = 0; i < 9; i = i + 2) System.out.print(i + " "); // prints 0 2 4 6 8 10 12 --- [infinite loop] for (i = 0; i != 9; i = i + 2) System.out.print(i + " "); // prints M e t u c h e n String str = "Metuchen"; for (i = 0; i < str.length(); i++) System.out.print(str.charAt(i) + " "); } public void forLoop2() { double balance = 500, interestRate; String msg = "Run for how many years?"; String yearsStr = JOptionPane.showInputDialog(msg); int years = Integer.parseInt(yearsStr); String msg2 = "Interest rate?"; String rateStr = JOptionPane.showInputDialog(msg2); interestRate = Double.parseDouble(rateStr); for (int year = 0; year < years; year++) { double interest = balance * interestRate; balance = balance + interest; } System.out.println("balance: " + balance); } // prints 3 rows, with 4 stars in each row public void nestedLoops1() { int i, j; for (i = 1; i <= 3; i++) { for (j = 1; j <= 4; j++) { System.out.print("*"); } System.out.println(); } } // prints 4 rows, with 3 stars in each row public void nestedLoops2() { int i, j; for (i = 1; i <= 4; i++) { for (j = 1; j <= 3; j++) { System.out.print("*"); } System.out.println(); } } // prints 1 star on row 1, 2 stars on row 2, etc. public void nestedLoops3() { int i, j; for (i = 1; i <= 4; i++) { for (j = 1; j <= i; j++) { System.out.print("*"); } System.out.println(); } } // prints 3 rows, with 2 stars in each row public void nestedLoops4() { int i, j; for (i = 1; i <= 3; i++) { for (j = 1; j <= 5; j++) { if (j % 2 == 0) System.out.print("*"); } System.out.println(); } } // prints 4 rows. Each row alternates * and - public void nestedLoops5() { int i, j; for (i = 1; i <= 4; i++) { for (j = 1; j <= 5; j++) { if ((i+j) % 2 == 0) System.out.print("*"); else System.out.print("-"); } System.out.println(); } } public static void main(String[] args) { Ch6 c = new Ch6(); //c.whileLoop1(); //c.whileLoop2(); //c.whileLoop3(); //c.whileLoop4(); //c.whileLoop5(); //c.addInterest(); //c.forLoops(); //c.forLoop2(); //c.nestedLoops1(); //c.nestedLoops2(); //c.nestedLoops3(); //c.nestedLoops4(); c.nestedLoops5(); } }