Java Notes
Examples - Method and loop review
The examples in this program are intended for reviewing methods and loops.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 |
// SampleMethods.java -- Shows loop examples inside methods.
// Author: Fred Swartz - 2005 Dec 11
import javax.swing.*;
import java.util.*;
public class SampleMethods {
//======================================================= primeFactor
// Returns a factor of n, or 0 if n is prime.
// Uses simple algorithm of dividing by all numbers up to n.
// Could improve efficiency many ways.
public static int primeFactor(int n) {
for (int divisor = 2; divisor < n; divisor++) {
if ((n % divisor) == 0) {
return divisor; // Divisible implies not prime!
}
}
return 0; // Must be prime if nothing was able to divide it.
}
//======================================================= countVowels
// Or could use substring, ||, switch, nested for loops, ...
public static int countVowels(String text) {
int vowelCount = 0;
for (int pos = 0; pos < text.length(); pos++) {
if ("aeiouAEIOU".indexOf(text.charAt(pos)) >= 0) {
vowelCount++;
}
}
return vowelCount;
}
//========================================================= summation
// Returns sum off all numbers from 1 to n.
// Uses loop instead of just returning (n * (n+1)) / 2
public static int summation(int n) {
int sum = 0;
for (int i = 1; i <= n; i++) {
sum += i;
}
return sum;
}
//========================================================== reverse
// Reverse string. Should use StringBuilder for efficiency.
public static String reverse(String s) {
String rev = "";
for (int pos = 0; pos < s.length(); pos++) {
rev = s.substring(pos, pos+1) + rev;
}
return rev;
}
//================================================= readAndAddDialog
public static int readAndAddDialog() {
int sum = 0;
while (true) { // Loop until Cancel or close box clicked.
String input = JOptionPane.showInputDialog(null, "Input");
if (input == null) {
break; //***************************** EXIT LOOP
}
int num = Integer.parseInt(input);
sum += num;
}
return sum;
}
//================================================= readAndAddScanner
public static int readAndAddScanner() {
Scanner in = new Scanner(System.in);
int sum = 0;
System.out.println("Enter numbers to sum. Non-number terminates.");
while (in.hasNextInt()) { // Loop until no integer
int num = in.nextInt();
sum += num;
}
return sum;
}
//=============================================================== main
public static void main(String[] args) {
assert primeFactor(2) == 0 : "primeFactor(2)";
assert primeFactor(4) != 0 : " primeFactor(4)";
assert primeFactor(112) != 0 : "primeFactor(112)";
assert primeFactor(113) == 0 : "primeFactor(113)";
assert countVowels("") == 0 : "countVowels(\"\")";
assert countVowels("a") == 1 : "countVowels(\"a\")";
assert countVowels("e") == 1 : "countVowels(\"e\")";
assert countVowels("i") == 1 : "countVowels(\"i\")";
assert countVowels("o") == 1 : "countVowels(\"o\")";
assert countVowels("u") == 1 : "countVowels(\"u\")";
assert countVowels("A") == 1 : "countVowels(\"A\")";
assert countVowels("E") == 1 : "countVowels(\"E\")";
assert countVowels("I") == 1 : "countVowels(\"I\")";
assert countVowels("O") == 1 : "countVowels(\"O\")";
assert countVowels("U") == 1 : "countVowels(\"U\")";
assert countVowels("x") == 0 : "countVowels(\"x\")";
assert countVowels("x") == 0 : "countVowels(\"x\")";
assert countVowels("nw s th tm fr...") == 0 : "countVowels(\"nw s th tm fr..\")";
assert countVowels("now is the time for...") == 6 : "countVowels(\"now is the time for...\")";
assert summation(1) == 1 : "summation(1)";
assert summation(2) == 3 : "summation(2)";
assert summation(3) == 6 : "summation(3)";
assert summation(4) == 10 : "summation(4)";
assert reverse("").equals("") : "reverse(\"\")";
assert reverse("a").equals("a") : "reverse(\"a\")";
assert reverse("ab").equals("ba") : "reverse(\"ab\")";
assert reverse("abc").equals("cba") : "reverse(\"abc\")";
int r1 = readAndAddDialog();
JOptionPane.showMessageDialog(null, "Sum is " + r1);
int r2 = readAndAddScanner();
System.out.println("Sum is " + r2);
}
}
|