Java の整数型(int, long)を使って計算しよう
新人
「Java の整数型って何ですか?どんなときに使うんでしょうか?」
先輩
「整数型とは、Java で整数を扱うためのデータ型のことだよ。たとえば、int 型や long 型があるんだ。」
新人
「整数を使うって、具体的にはどういう場面で役立つんですか?」
先輩
「たとえば、商品の価格を計算したり、人数を数えたりする場合に整数型を使うよ。詳しく見ていこう!」
1. 整数型とは?(基本的な説明)
整数型とは、小数点を含まない数値を扱うためのデータ型です。Java では、主に int 型と long 型の 2 種類の整数型がよく使われます。
int 型と long 型の基本
- int 型 - 32 ビットの整数型(-2,147,483,648 から 2,147,483,647 まで)
- long 型 - 64 ビットの整数型(非常に大きな数を扱える)
たとえば、次のように整数型の変数を使います。
public class IntegerExample {
public static void main(String[] args) {
int apples = 10;
long distance = 10000000000L;
System.out.println("りんごの数: " + apples);
System.out.println("距離: " + distance + "メートル");
}
}
2. int 型と long 型の違い(使い分けのポイント)
int 型と long 型の違いは、扱える数の範囲です。一般的に、ほとんどの計算は int 型で十分ですが、大きな数を扱う場合は long 型を使います。
int 型を使う場面
- 商品の価格や個数など、そこまで大きな数値でない場合
- テストの点数やカウンターの値など
public class IntExample {
public static void main(String[] args) {
int score = 85;
int price = 1200;
System.out.println("テストの点数: " + score);
System.out.println("商品の価格: " + price + "円");
}
}
long 型を使う場面
- 銀行の残高の計算など、大きな数を扱う場合
- 時間や距離など、桁数の大きいデータを管理する場合
public class LongExample {
public static void main(String[] args) {
long worldPopulation = 7800000000L;
long lightSpeed = 299792458L;
System.out.println("世界の人口: " + worldPopulation + "人");
System.out.println("光の速度: " + lightSpeed + "メートル/秒");
}
}
3. int 型の基本的な使い方(サンプルコード)
int 型は Java のプログラムで最もよく使われる整数型です。int 型の変数を宣言し、値を代入して使う方法を見てみましょう。
int 型の変数を使う
次のプログラムは、int 型の変数を宣言し、計算を行うサンプルです。
public class IntExample {
public static void main(String[] args) {
int num1 = 10;
int num2 = 20;
int sum = num1 + num2;
System.out.println("合計: " + sum);
}
}
int 型の計算
int 型の変数を使って四則演算を行うことができます。
public class IntCalculation {
public static void main(String[] args) {
int a = 15;
int b = 3;
System.out.println("足し算: " + (a + b));
System.out.println("引き算: " + (a - b));
System.out.println("掛け算: " + (a * b));
System.out.println("割り算: " + (a / b));
}
}
4. long 型を使う場面(int では足りない場合)
int 型では扱える数の範囲が決まっており、大きな数値を扱う場合は long 型を使う必要があります。
int 型では足りない場合の例
以下のコードは int 型の最大値を超える数値を扱おうとした場合のエラーを示します。
public class IntOverflowExample {
public static void main(String[] args) {
int bigNumber = 2147483647; // int の最大値
int overflow = bigNumber + 1; // 範囲を超える
System.out.println("値: " + overflow);
}
}
このコードを実行すると、正しく計算できず、意図しない値になります。そのため、大きな数を扱う場合は long 型を使います。
long 型を使う例
次のプログラムでは、long 型を使って安全に大きな数値を扱います。
public class LongExample {
public static void main(String[] args) {
long bigNumber = 2147483648L; // int の範囲を超えるため L をつける
long distance = 15000000000L; // 長い距離を表す
System.out.println("大きな数: " + bigNumber);
System.out.println("距離: " + distance + "メートル");
}
}
5. 整数型を使った簡単な計算プログラム
整数型を使って、簡単な計算を行うプログラムを作成してみましょう。
商品の合計金額を計算する
次のプログラムでは、int 型を使って商品の合計金額を計算します。
public class PriceCalculator {
public static void main(String[] args) {
int pricePerItem = 500; // 商品の価格
int quantity = 3; // 購入数
int totalPrice = pricePerItem * quantity; // 合計金額
System.out.println("合計金額: " + totalPrice + "円");
}
}
long 型を使った大きな計算
次のプログラムでは、long 型を使って地球から太陽までの光の移動時間を計算します。
public class LightSpeedCalculation {
public static void main(String[] args) {
long lightSpeed = 299792458L; // 光の速度(メートル/秒)
long time = 500L; // 500 秒後
long distance = lightSpeed * time;
System.out.println("光が " + time + " 秒で進む距離: " + distance + " メートル");
}
}
このように、整数型を使ってさまざまな計算ができます。用途に応じて int 型と long 型を適切に使い分けましょう。
6. 整数型の計算時の注意点(オーバーフローなど)
整数型の計算では、いくつかの注意点があります。特に気をつけたいのが「オーバーフロー」と「ゼロ除算(ゼロで割ること)」です。
オーバーフローとは?
オーバーフローとは、変数の範囲を超える値を扱ったときに起こる問題です。例えば、int 型の最大値(2,147,483,647)を超える計算をすると、正しくない値になってしまいます。
public class OverflowExample {
public static void main(String[] args) {
int maxInt = 2147483647;
int result = maxInt + 1; // 最大値を超える
System.out.println("オーバーフロー後の値: " + result);
}
}
このコードを実行すると、-2147483648 という意図しない結果になります。これは、整数型が循環する(最大値を超えると最小値に戻る)ためです。
ゼロ除算に注意
整数を計算するとき、ゼロで割るとエラーが発生します。
public class DivisionByZeroExample {
public static void main(String[] args) {
int number = 10;
int zero = 0;
int result = number / zero; // ここでエラー
System.out.println("結果: " + result);
}
}
このプログラムを実行すると、ArithmeticException: / by zero というエラーが発生します。ゼロで割る処理を避けるため、ゼロかどうかを事前に確認することが重要です。
7. 整数型を使うときのベストプラクティス(適切な選び方)
整数型を使うときは、状況に応じて適切な型を選ぶことが大切です。以下のポイントを参考にしましょう。
int を使うべき場面
- 変数に格納する値が
-2,147,483,648から2,147,483,647の範囲内である場合 - 計算が比較的シンプルで、データが大きくならない場合
- プログラムのメモリ使用量を抑えたい場合
long を使うべき場面
- 扱う数値が
intの範囲を超える可能性がある場合 - 銀行の残高や科学計算など、大きな数値を使う必要がある場合
- 時間や距離などのデータを扱う場合
整数型の選び方の例
| 用途 | 適切なデータ型 |
|---|---|
| 商品の価格、カウント | int |
| 世界人口、光の速度 | long |
| テストの点数 | int |
| 距離(メートル単位) | long |
8. 練習問題:整数型を使った簡単な計算プログラムを作ろう
ここまで学んだ整数型の使い方を実践するために、簡単な練習問題を解いてみましょう。
問題 1: 商品の合計金額を計算しよう
商品の価格と個数を変数に保存し、合計金額を計算するプログラムを作成してください。
public class ShoppingCalculator {
public static void main(String[] args) {
int price = 1200; // 商品の価格
int quantity = 5; // 購入数
int totalPrice = price * quantity; // 合計金額を計算
System.out.println("合計金額: " + totalPrice + "円");
}
}
問題 2: long を使って地球の周りを何周できるか計算しよう
飛行機が 1 回のフライトで 10,000 キロメートル移動するとします。地球の赤道の長さが約 40,000 キロメートルなので、何周できるかを計算するプログラムを作ってください。
public class EarthCircumnavigation {
public static void main(String[] args) {
long earthCircumference = 40000000L; // 地球の赤道の長さ(メートル)
long flightDistance = 10000L; // 1 回のフライトで進む距離
long numOfTrips = earthCircumference / flightDistance; // 何周できるか
System.out.println("地球を " + numOfTrips + " 周できます!");
}
}
問題 3: 数値を 2 倍にするプログラムを作ろう
ユーザーが入力した数値を 2 倍にするプログラムを作ってみましょう。
public class DoubleNumber {
public static void main(String[] args) {
int number = 25; // ユーザーが入力した値
int doubled = number * 2; // 2 倍にする
System.out.println("2 倍の値: " + doubled);
}
}
これらの練習問題を通じて、整数型の基本をしっかり理解しましょう!