01: // plik 06_TryCatch_1/Ciag.java
02: 
03: import java.util.*; // Scanner, InputMismatchException
04: 
05: public class Ciag {
06: 
07:     static String NL = System.getProperty("line.separator");
08: 
09:     public static void main(String[] args) {
10: 
11:         Scanner scan = new Scanner(System.in);
12: 
13:         while(true) {
14:             System.out.print("Podaj liczb\u0119 ca\u0142" +
15:                 "kowit\u0105 wi\u0119ksz\u0105 od jedynk" +
16:                 "i lub 0 aby sko\u0144czy\u0107: ");
17: 
18:             int k = 0;
19:             try {
20:                 k = scan.nextInt();
21:             } catch(InputMismatchException e) {
22:                 System.out.println("To nie liczba!");
23:                 scan.skip(".*");
24:                 continue;
25:             }
26: 
27:             if ( k == 0 ) System.exit(0);
28: 
29:             if ( k <= 1 ) {
30:                 System.out.println("Za ma\u0142a liczba");
31:                 continue;
32:             }
33: 
34:             System.out.println("Wartosc startowa: " + k);
35:             int cnt = 0;
36:             while ( k > 1 ) {
37:                 if (k%2 == 0)
38:                     k /= 2;
39:                 else
40:                     k  = 3*k+1;
41:                 cnt++;
42:                 System.out.printf("a[%3d] = %3d%s",
43:                                         cnt, k,NL);
44:             }
45:         }
46:     }
47: }