教育サーバーのページ
オンラインテキスト目次
ソフトウエア入門演習
public class Arithmetic { public static void main(String[] args) { int a = 11, b = 3; System.out.println("a = " + a + ",b = " + b); System.out.println("a + b = " + (a + b)); System.out.println("a - b = " + (a - b)); System.out.println("a * b = " + (a * b)); System.out.println("a / b = " + (a / b)); System.out.println("b / a = " + (b / a)); System.out.println("a % b = " + (a % b)); System.out.println("b % a = " + (b % a)); } }a + b は 11+3なので14となる。a - b は 11-3 なので 8となる。
public class Arithmetic2 { public static void main(String[] args) { int a = 11, b = 3; float c = 11, d = 3; System.out.println("a = " + a + ",b = " + b + ",c = " + c + ",d = " + d); System.out.println("c / b = " + (c / b)); System.out.println("d / a = " + (d / a)); System.out.println("a - (-b) = " + (a - (-b))); System.out.println("a + b * c = " + (a + b * c)); System.out.println("(a + b) * c = " + ((a + b) * c)); System.out.println("Math.pow(a, b) = " + Math.pow(a, b)); System.out.println("Math.pow(b, a) = " + Math.pow(b, a)); } }c / b は 11.0/3で浮動小数点数の割り算となるので3.6666667となる。
public class Relational { public static void main(String[] args) { int a = 11, b = 3; System.out.println("a = " + a + ",b = " + b); System.out.println("a > b = " + (a > b)); System.out.println("a < b = " + (a < b)); System.out.println("a >= b = " + (a >= b)); System.out.println("a <= b = " + (a <= b)); System.out.println("a == b = " + (a == b)); System.out.println("a != b = " + (a != b)); } }a > b は 11 > 3で、これは成り立つのでtrueと表示される。
public class Relational2 { public static void main(String[] args) { System.out.println("10 > 0 && 20 == 20 = " + (10 > 0 && 20 == 20)); System.out.println("10 < 0 && 20 == 20 = " + (10 < 0 && 20 == 20)); System.out.println("10 > 0 && 20 == 21 = " + (10 > 0 && 20 == 21)); System.out.println("10 < 0 || 20 == 20 = " + (10 < 0 || 20 == 20)); System.out.println("10 < 0 || 20 == 21 = " + (10 < 0 || 20 == 21)); System.out.println("!(10 < 0) = " + (!(10 < 0))); System.out.println("!(20 == 20) = " + (!(20 == 20))); } }10 > 0 && 20 == 20の場合、10 > 0は true、20 == 20 もtrueで true && true であるから、結果はtrueとなる。
public class Exam_2_1_1 { public static void main(String[] args) { System.out.println("10-9-8-7=" + (10-9-8-7)); System.out.println("((10-9)-8)-7=" + (((10-9)-8)-7)); System.out.println("10-(9-(8-7))=" + (10-(9-(8-7)))); System.out.println("20/5*2=" + (20/5*2)); System.out.println("(20/5)*2=" + ((20/5)*2)); System.out.println("20/(5*2)=" + (20/(5*2))); System.out.println("10+20%3=" + (10+20%3)); System.out.println("(10+20)%3=" + ((10+20)%3)); System.out.println("10+(20%3)=" + (10+(20%3))); System.out.println("!true&&false=" + (!true&&false)); System.out.println("(!true)&&false=" + ((!true)&&false)); System.out.println("!(true&&false)=" + (!(true&&false))); } }10-9-8-7 は 10-9が計算され、1となり、1-8が計算され、-7となり、-7-7が計算され、-14となる。
public class Increment { public static void main(String[] args) { int a, b, c; a = 3; b = a++; c = ++a; System.out.println("a = " + a + ",b = " + b + ",c = " + c); a = 3; b = ++a; c = a++; System.out.println("a = " + a + ",b = " + b + ",c = " + c); } }上記の場合は、b = a++で b = aがされてから、a++がなされる。この時点では、aが4、bが3となる。 続いて、c = ++aで++aがされてから、c = aがなされる。つまり、aが5、cも5となる。
public class Exam7 { public static void main(String[] args) { System.out.println("8 / 4 * 2 = " + (8 / 4 * 2)); } }まず、8/4をおこなって2となり、2*2をおこなって4となる。 4*2を先に行うには、4*2を括弧で囲めばよい。つまり、 System.out.println("8 / (4 * 2) = " + (8 / (4 * 2))); とすればよい。
public class Exam8 { public static void main(String[] args) { int a = 100, b = 200, c = 50; a += b = c; System.out.println("a = " + a + ",b = " + b + ",c = " + c); } }代入演算子は右結合であるため、a += b = cでは、まず b = c が行われてから、 a += b が行われる。したがって、cは50、bも50、aは150となる。