講義メモ

・p.57 Chap1_11_1から

.56 型を変換する

・範囲の大きい同種の型に代入する場合は、自動的に暗黙の型変換が行われる
 例: int i = 5; long a = i; //暗黙の型変換でlongになる
・整数型から実数型に代入する場合は、自動的に暗黙の型変換が行われる
 例: int i = 5; double a = i; //暗黙の型変換でdoubleになる
・実数を整数型に代入する場合は、明示的な型変換(キャスト)が必要で「(型名)」を前置する
 ※ これをキャスト演算子ともいう
 例: double a = 3.14; int i = (int)a;  //int型にキャストしてからなら代入可能で3になる
・実数リテラルを整数型にキャストすることも可能
 例: int i = (int)3.14;  //int型にキャストしてからなら代入可能で3になる
・実数から整数型にキャストすると小数点以下切捨てになる(四捨五入ではない)
・文字列型以外の各型を文字列型に変換するには、""(0文字の文字列)に「+」で連結すると良い
 例: int i = 365; string s = "" + i; //文字列"365"になる

p.57 Chap1_11_1

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class Chap1_11_1 : MonoBehaviour {
    void Start() {
        int seisuu = (int)3.5; //小数点以下切捨てでint変換
        string text = "" + 110; //文字列変換で"110"になる
        Debug.Log( seisuu + text  ); //加算ではなく連結で"3110"になる
    }
    void Update() {
        
    }
}

ミニ演習:mini057b

・3の整数の平均値を実数で表示したい
・public変数a、b、cを定義し、合計をdoubleにキャストしてから3で割って平均を得よう

作成例

using UnityEngine;
public class mini057b : MonoBehaviour {
    public int a = 1, b = 2, c = 3;
    void Start() {
        Debug.Log((double)(a + b + c) / 3);
    }
    void Update() {}
}

別解

using UnityEngine;
public class mini057b : MonoBehaviour {
    public int a = 1, b = 2, c = 3;
    void Start() {
        Debug.Log((a + b + c) / 3.0); //整数÷実数になる
    }
    void Update() {}
}

ミニ演習:mini057c

・西暦を受け取って何世紀か答えよう
・例:20世紀は1901年から2000年まで
・入力時にわかりやすいようにUnity側のパブリック変数の上にコメントを表示できる
・書式: [Header("コメント")] ※パブリック変数の定義のすぐ上に単独行で置くこと
・ヒント: 世紀 = (年 - 1) / 100 + 1

作成例

using UnityEngine;
public class mini057c : MonoBehaviour {
    [Header("西暦を入力してください")]
    public int a = 1901;
    void Start() {
        Debug.Log((a - 1) / 100 + 1 + "世紀です"); //計算後に連結
    }
    void Update() {}
}

参考:2つ以上のパブリック変数コメントも可能

using UnityEngine;
public class mini057c : MonoBehaviour {
    [Header("西暦を入力してください")]
    public int a = 1901;
    [Header("令和の和暦を入力してください")]
    public int b = 1;
    void Start() {
        Debug.Log((a - 1) / 100 + 1 + "世紀です"); //計算後に連結
        Debug.Log("西暦" + (b + 2018) + "年です"); //計算後に連結
    }
    void Update() {}
}

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です