26.1.3.8 二重の繰返し

もう少しwhileらしい例題をやってみましょう.

class Factorization {
    public static void main(String argv[ ]) {
	int v=1911;
	int x;
	while(v >1) {
	    x=2;
	    while(v % x > 0)
		x=x+1;
	    System.out.println(x);
	    v=v/x;
	}
    }
}

fileFactorization.java

ここで演算子"%"は整数除算の余り,すなわちa%bはaをbで割った余りを示します.剰余演算子などとも呼ばれます.10%3=1,10%4=2,10%5=0,というぐあいです.a%b=0はaがbで割り切れること,つまりaがbの倍数(bがaの約数)であるを示しています.

Factorizationでは,while構造が二重になっているので少し複雑です.内側のwhileでは一文(x=x+1)だけを繰り返して実行します.これに対して外側の(大きな)whileでは,沢山の操作を繰り返し実行します.その動きを追ってみましょう.