教育サーバーのページ
オンラインテキスト目次
ソフトウエア入門演習
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となる。