C#

#初めに
今回やった事はC#のコンソールアプリケーションでの値と変数の使い方をやりました。


#開発環境
OS : Microsoft Windows10 (64bit)
IDE: Microsoft Visual Studio 2012

#Visual Studio 2012のC#、コンソールアプリケーションのプロジェクト作り方。

まず初めにVisual studio2012を作動してもらい左上にあるファイルから新規作成で１のプロジェクトをクリックしてもらいます。

![fail5.png](https://qiita-image-store.s3.amazonaws.com/0/249265/c4457bf9-3338-cbbe-b23c-29d6501a80ec.png)

１をクリックしてもらうと次に２のコンソールアプリケーションをクリックしてもらい３所でファイルの名前をきめ右下にあるOKボタンをクリックします。

![fail6.png](https://qiita-image-store.s3.amazonaws.com/0/249265/c057cafb-4c55-e20c-b4da-91c617094907.png)

OKをクリックするとこの様な画面になるので、C#コンソールアプリケージョンのプロジェクトはこれで終了になります。

![fail7.png](https://qiita-image-store.s3.amazonaws.com/0/249265/271eb0ae-dfad-6dbb-04f7-c333768a85f6.png)

#Visual Studio 2012のC#、コンソールアプリケーションの計算の基本
初めに作ったプロジェクトを立ち上げます。

次に計算式のプログラムを入力していきます。

namespace ConsoleApplication1
{
    class Program
    {
        static void Main(string[] args)
        {}        
    }
}
の中にあるstatic void Main(string[] args){}この文にある{}の中に入力していきます。
値や変数にはそれぞれタイプが決まっているんですが今回は別のタイプを入れたらどうなるのかをやったのでそちらを書かせてもらいます。
今回入力したプログラムが
int a = 100;
long b = a;
Console.WriteLine(b);

Console.ReadKey();
このプログラムを{}の中に入力します。

入力が終わった時の画面がこうなります。

![fail8.png](https://qiita-image-store.s3.amazonaws.com/0/249265/5e2380b3-4a83-61f5-416c-eadccfeba127.png)

プログラムに間違いがないか確かめた後にプログラムを実行します。

実行結果が次のようになります。

![fail9.png](https://qiita-image-store.s3.amazonaws.com/0/249265/bbc34e68-666e-e04b-75f9-34cb553a2883.png)

画面にint　aでlong bに代入した数値の100が表示されます。

逆にlong型をint型に代入するとどうなるか試してみるとプログラムにエラーが起きてしまいきちんとプログラムが作動しません。

その理由が64ビットだとint型のサイズが4バイトでlong型のサイズが8バイトなんです。

long型の方がint型よりサイズが大きいのでint型の値はlong型に保管出来るのですがlong型の値はint型に保管が出来ないのでエラーがおきてしまうのです。

次に行う事はint型を使って簡単な計算プログラムを入力していきます。

static void Main(string[] args){}の中の{}に次は
int a = 10;
int b = 20;
int c = 30;
int answer = a * b - c;
Console.WriteLine(answer);

Console.ReadKey();
を入力します。

入力が終わった時の画面がこうなります。

![fail10.png](https://qiita-image-store.s3.amazonaws.com/0/249265/f47788e8-b384-4be7-ac79-447c9ec6b711.png)

プログラムに間違いがないか確かめた後に作動さします。

実行結果が次のようになります。

![fail11.png](https://qiita-image-store.s3.amazonaws.com/0/249265/0018ce62-b300-eb4d-2638-46b0f124b141.png)


こちらはint　a,b,cにを a * b -cをした結果になります。

intで入れたa,b,cに値を入れてそれを元にして計算した結果になります。

最後に行う事が異なるタイプの値を計算してみるどうなるかやります。

入力するプログラムが
int a = 10;
int b = 3;
int answer = a/b;
Console.WriteLine("答え" + answer);

Console.ReadKey();
を入力して実行を行います。

入力したプログラムがこちらになります。

![fail12.png](https://qiita-image-store.s3.amazonaws.com/0/249265/83763b92-c782-a00f-2707-930cccfc9f7a.png)

プログラムに間違いがないか確かめた後に作動させします。

結果がこちらになります。

![fail13.png](https://qiita-image-store.s3.amazonaws.com/0/249265/0392b81d-b696-1ee9-5def-b1e7c80e8ac8.png)

結果は３になります。
3.3333・・・・なんて数字にはなりません。
int型の変数には整数しか入らないからです。

もし3.3333・・などにしたい場合int型で入力したaかbかのどちらかと結果の部分をdoubleに変更すると

変更後のプログラムがこちらになります。

int a = 10;
double = 3;
double answer = a/b;
Console.WriteLine("答え" + answer);
Console.ReadKey();

プログラムの変更に間違いがないか確かめた後に作動させします。

![fail14.png](https://qiita-image-store.s3.amazonaws.com/0/249265/662b740e-a12b-165c-d840-ba39023a8f9b.png)

作動させた結果がこちらになります。

![fail15.png](https://qiita-image-store.s3.amazonaws.com/0/249265/29a5bb91-4be8-f14a-1048-7805d27d8a43.png)

3.3333・・・の結果になりました。

なぜこうなるかと言うと結果がdouvle値になっているからです。
C#ではタイプの異なる値どうしを計算すると、一番幅広い値が扱えるタイプの値として結果が得られるのです。
int型とdouble型ではdouble型の方が広い範囲扱えるので、結果がdouble型になりこうなるのです。

#最後に
今回C#で変数の使い方をやりきちんと理解出来てない部分があったり今回やった事で知れた事があったのでとてもよかったです。