Help us understand the problem. What is going on with this article?

【Java】基本的な型と命令ノート

More than 1 year has passed since last update.

データ型

  • 整数
    • byte:±約128
    • short:±約3.2万
    • int:±約21億
    • long:±約900京
  • 小数
    • float:曖昧で良い小数
    • double:厳密な小数
  • 真偽値
    • booleantrue or false
  • 文字
    • char:文字1文字
  • 文字列
    • String:文字列

型変換の概念

データ型の大小関係に従う。小は大に入れるが逆は無理。
byte < short < int < long < float < double

public class Main {
  public static void main(String[] args){
    // int型同士で計算した場合 -> 2
    System.out.println("int型同士で計算した場合");
    int a=5;
    int b=2;
    System.out.println(a/b);

    // int型同士で計算した場合 -> 2.5
    System.out.println("double型同士で計算した場合");
    double c=5;
    double d=2;
    System.out.println(c/d);

    // 片方がint型,もう片方がdouble型で計算した場合 -> 2.5
    System.out.println("片方がint型,もう片方がdouble型で計算した場合");
    int e=5;
    double f=2;
    System.out.println(e/f);

    // 片方がdouble型,もう片方がint型で計算した場合(検算) -> 2.5
    System.out.println("片方がdouble型,もう片方がint型で計算した場合(検算)");
    double g=5;
    int h=2;
    System.out.println(g/h);

    // int型同士て計算したものをdouble型変数xに代入した場合 -> 2.0
    System.out.println("int型同士て計算したものをdouble型変数xに代入した場合");
    int i=5;
    int j=2;
    double k=i/j;
    System.out.println(k);
  }
}

基本的な命令文

  • 画面出力
    • System.out.print(引数1);
    • System.out.println(引数1);
  • 数値の大小比較
    • Math.max(引数1, 引数2);
  • 文字列型の数値型変換
    • Integer.palseInt(引数1);
  • 乱数発生
    • new java.util.Random().nextInt(引数1);
  • キーボードからの入力受付
    • new java.util.Scanner(System.in).nextLine(引数1);
    • new java.util.Scanner(System.in).nextInt(引数1);
public class test02 {
  public static void main(String[] args){
    // 画面出力
    System.out.print("System.out.print();");
    String a="My name is";
    String b="sample program";
    System.out.print(a+b);
    System.out.println(a+b);

    // 数値の大小比較;
    System.out.println("Math.max();");
    int m=5;
    int n=2;
    int l=Math.max(m,n);
    System.out.println("比較実験:"+m+"と"+n+"で大きい方は"+l);
    System.out.println("--");

    // 文字列型の数値型変換;
    System.out.println("Integer.parseInt();");
    String age="31";
    int i=Integer.parseInt(age);
    System.out.println("あなたは来年"+(i+1)+"歳になりますね");
    System.out.println("--");

    // 乱数発生;
    System.out.println("new java.util.Random().nextInt();");
    int r=new java.util.Random().nextInt(2); // nextIntの方に引数を入れる。
    System.out.println("乱数発生器:"+r);
    System.out.println("--");

    // キーボードからの入力受付
    System.out.println("new java.util.Scanner(System.in).next~系");
    // 名前と年齢を受け取る。
    System.out.println("あなたの名前を教えてください。");
    String x = new java.util.Scanner(System.in).nextLine();
    System.out.println("あなたの年齢を入力してください。");
    int y = new java.util.Scanner(System.in).nextInt();
    // 出力
    System.out.println("ようこそ"+x+"さん("+y+"歳)。");
  }
}

追記 2019/05/13

new java.util.Scanner(System.in).nextline()だが、
これはインスタンスの生成とメソッドの使用を一文でやっている。

  • インスタンス:java.util.Scanner
  • メソッド:nextLine()

でもこれだとEclipseはエラーを返してくる。

<unassingned Closeable value>が閉じられることはありません

Scanner.close()メソッドを使って入力受付を終わらせろ、ということらしい。
なので、インスタンスの生成とメソッドの使用は2文に分けるのが吉。
(参考)

Scanner scn = new java.util.Scanner(System.in);
String str = scn.nextLine();
scn.close(); //ここで閉じる。

あるいは、

BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
String str = br.readLine();

こういう↑書き方もある。

  • インスタンス:
    • InputStreamReader
    • BufferedReader
  • メソッド:
    • readLine()

なお、直接コマンドプロンプトでjavacとjavaを叩くとエラーは出ない模様。

参考書籍

スッキリわかるJava入門 第二版
Pp.075-091

やさしいJava 第7版
Pp.61-67

shg3
学習
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away