0
0

More than 3 years have passed since last update.

【Java】暗黙的型キャスト(AOJ10 - 数字の和)

Last updated at Posted at 2020-11-15

型キャスト

public class Main {
    public static void main(String[] args)  {

        char c = '1';
        //暗黙的にint型、double型にキャスト
        int i = c;
        double d = c;
        System.out.println(c + "をint型へキャスト→ " + i);
        System.out.println(c + "をdouble型へキャスト→ " + d);

        //引数がdouble型のメソッドに、char型を引数として渡す
        doubleMethod(c);
    }

    static void doubleMethod(double d) {
        System.out.println("double型→ " + d);
    }
}
1をint型へキャスト 49
1をdouble型へキャスト 49.0
double型 49.0

数字の和(ITP1-8)

与えられた数の各桁の和を計算するプログラムを作成して下さい。
Input
複数のデータセットが入力として与えられます。各データセットは1つの整数 x を含む1行で与えられます。
x は 1000 桁以下の整数です。
x が 0 のとき入力の終わりとします。このデータセットに対する出力を行ってはいけません。
Output
各データセットに対して、x の各桁の和を1行に出力して下さい。

  • この例でのans += line.charAt(i)-‘0’;で暗黙的にキャストをしている
    • line.charAt(i)はcharを返す
    • ansはintegerなので、integerに変換する
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;

public class Main {
    public static void main(String[] args) throws Exception {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        int ans;

        while(true){
        String line = br.readLine();
            if(line.length() == 1 && line.equals("0")){
                break;
            }else{
                ans= 0;
                for(int i = 0; i < line.length(); i++){
                    ans += line.charAt(i)-'0';

               /*型キャストの確認
               System.out.println("line.charAt(i) "+line.charAt(i));
               System.out.println("line[i] "+(int)line.charAt(i));
               System.out.println("(int)'0' "+(int)'0');
               */
               }
               System.out.println(ans);

            }
        }
    }
}  
0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0