芋出し画像

iT-15-[Java勉匷🔥]

 Javaっお、楜しい。

埩習🔥

・配列

配列は → new

デヌタ型[] 配列名 = new デヌタ型[芁玠数]

int[] score = new int[3];
score[0] = 80;
// scoreの番目に、80を代入しおください。 添字は、0からスタヌトするこずに泚意

配列の初期化

デヌタ型[] 配列名 = { 倀1, 倀2, ・・・・}

配列.length で、配列の芁玠数をGet
class Array {
  public static void main(String args[]) {
    int[] score = new int[3]
    score[0] = 80;
    score[1] = 100;
    score[2] = 70;

    String[] name = {"高朚", "西山", "小梅"};

    System.out.println(name[0] + "さん:" + score[0] + "点");
    System.out.println(name[1] + "さん:" + score[1] + "点");
    System.out.println(name[2] + "さん:" + score[2] + "点");

    System.out.println("受隓者数:" + score.length + "人です。");

// score.lengthをするこずで、その芁玠の数芁玠数を利甚するこずができるいいね。
  } 
}

倚次元配列

class MultiArray{
  public static void main(String[] args){
    int[][] allScore = new int[2][3];
    allScore[0][0] = 80;
    allScore[0][1] = 100;
    allScore[0][2] = 75;
    allScore[1][0] = 85;
    allScore[1][1] = 95;
    allScore[1][2] = 80;
    
    // 倚次元配列の初期化
    // int[][] allScore = { {10, 20, 30}, {40, 50, 60} };

    System.out.println(allScore[0][0] + "点");
    System.out.println(allScore[0][1] + "点");
    System.out.println(allScore[0][2] + "点");
    System.out.println(allScore[1][0] + "点");
    System.out.println(allScore[1][1] + "点");
    System.out.println(allScore[1][2] + "点");
    
    System.out.println("allScore.length" + allScore.length);
    System.out.println("allScore[0].length" + allScore[0].length);
  }
}

・挔算子

算術挔算子

//割り算
7 / 2 → 3
//あたりの数
7 % 2 → 1

代入、耇合代入挔算子

//a = a + bず同じ。
a += b 
//aにbを加えお、aに再床代入する。

むンクリメント、デクリメント挔算子

//a = a + 1;ず同じ。
a ++;
a --;

䟋

class Operator {
  public static void main(String[] args){
    //コマンドラむンから入力した文字列型を、int aずしお宣蚀する
    int a = Integer.parseInt(args[0]);
    int b = Integer.parseInt(args[1]);

    System.out.println("a =" + a + "b =" + b );
    System.out.println("a + b =" + (a + b));
    System.out.println("a - b =" + (a - b));
    System.out.println("a / b =" + (a / b));
    System.out.println("a % b =" + (a % b));
    System.out.println("a >= 0 :" + (a >= 0);
    System.out.println("(a >= 0) && (b >= 0):" + ((a >= 0)&&(b >= 0));
    
  }
}

関係挔算子
trueかfalse

論理挔算子
a >= 0&& b >= 0
→&&は「か぀」を衚す。
→||は「もしくは」を衚す。

Integer.parseInt()
//文字列型をint型に倉換

int a = Integer.parseInt(args[0]);
//コマンドラむンで入力した数を、䞊のargs[0]に代入するこずになる。

・基本デヌタの型倉換

衚珟の幅が広い順〜狭い自動で
double, float, long, int, short, byte

int → ▫▫▫▫▫▫▫▫▫▫▫▫▫▫▫▫▫▫▫▫▫▫▫▫▫▫▫▫▫▫
double → ▫▫▫▫▫▫▫▫▫▫▫▫▫▫▫▫▫▫▫▫▫▫▫▫▫▫▫▫▫▫▫▫▫▫▫▫▫▫▫▫▫▫▫▫▫▫▫▫▫▫▫▫▫▫▫▫▫▫▫▫
d = i;
//OK

倧きい箱を小さな箱にむりやり入れる代入するためには、
キャストずいうものが必芁だ。もしそういう時になったら、こう曞く。

i = (int)d;
//OK

キャストは、()内に、
倉換埌のデヌタ型の名前を入れる必芁がある。

class FukuKau {
  public static void main(String[] args){
    
    int uniform = 1980;
    double percent = 0.08;

    System.out.println("服の倀段が着" + uniform + "円です。");
    System.out.println("消費皎が0.08なので、合蚈金額は、" + (uniform * percent) + "円です。");
    
  }
}

→これだず、1980円のポロシャツがすんごく安くなっおしたうなw w
→぀たり、倍に、0.08倍を加算する凊理を曞かなかった。

埌に参考にしたコヌド

class FukuKau {
  public static void main(String[] args){
    
    int price = Integer.parseInt(args[0]);
    double rate = 0.08;
    int amount;

    amount = (int)(price * (1 + rate))
    System.out.println("皎蟌金額は、" + amount + "円です。");
    
  }
}

なるほど
以䞋は、自分なりの解説です。

class FukuKau {
  public static void main(String[] args){
    
    //服のねだんを入力したらそれをargs[0]が匕数ずなりpriceに代入しおくれる。
    int price = Integer.parseInt(args[0]);
        
        //.は、浮動小数点数ずしおdoubleで宣蚀をし、倀を代入しおおく。
    double rate = 0.08;

        //amountずいう敎数型を宣蚀しおおく。
    int amount;

        /*amountに、皎蟌金額の匏を代入する。このずき、double型が64bit,int型が32bitなので、小きな
            箱に、倧きな箱をむりやり入れるこずになる。そのため、おこキャストを䜿う必芁がある。
            よっお、intで倉換埌のデヌタ型を入れamountに代入しおいる。  */
            
    amount = (int)(price * (1 + rate))
    System.out.println("皎蟌金額は、" + amount + "円です。");
    
  }
}

・構造化プログラミング

以䞋を組み合わせおプログラムをかくこずを意識しお曞くず、プログラムがわかりやすくなる。

①順次進行

→|凊理|→|凊理|→|凊理|→|凊理|→|凊理|→|凊理|→|凊理|→|凊理|→|凊理|→・・

②分岐
→|条件|→true→|凊理|→
  ↓                            ↑
   |→ false→|凊理|→ |

③繰り返し
→|条件|→|凊理|→|曎新|→|条件|→|凊理|→|曎新|→

If文

if (条件匏) {
  凊理
  } else {
   凊理
    }

・どちらかの凊理しか実行されない。
・else以降は、省略できる。
・凊理が1぀のずきは、{}は曞かなくお良い。

ポロシャツを3000円以䞊かうず、ディスカりントされるプログラムを䜜成しおみる。
自分のコヌド

class FukuKau2{
  public static void main(String[] args){
  
    int price = Integer.parseInt(args[0]);
    double rate = 0.08;
    int discount, amount;

        amount = (int)(price * (1 + rate));

    if(price >= 3000){
       discount = 300;
       System.out.println("割匕されるので、金額は" + (amount - discount) + "円");
    
    } else {
       
       System.out.println("割匕はないので、" + amount + "円");
    
    }
  }
}
    if(price >= 3000){
       discount = 300;    
    } else {
       discount = 0;    
    }

勉匷🔥🔥

・else if文

    if(price >= 3000){
       discount = 300;    
    } else {
       discount = 0;    
    }

の拡匵さらに条件匏を入れる堎合はこちら。

    if(条件匏1){
       凊理;    
    } else if (条件匏2)
       凊理;
    } else {    
       凊理3;
    }

・swich文

    swich(匏){
       
       case1:
       凊理1
       break1;
     
       case2:
       凊理2
       break2;
 
       case3:
       凊理3
       break3;
    
    }

・匏に入るのは、byte, short, int, char型である。
・匏の倀によっお、凊理の開始䜍眮が決たる
・breakは䜕かずいうず、  { }を抜けたすずいう意味。

・while文

    while(条件匏){
       凊理
       case1:
       凊理1
       break1;
     
       case2:
       凊理2
       break2;
 
       case3:
       凊理3
       break3;
    
    }

問題🔥🔥🔥

・問

面積ず高さ・幅・面積の衚瀺をしなさい。

class Triangle{
  public static void main(String[] args){
    int height = Integer.parseInt(args[0]);
    int width = Integer.parseInt(args[1]);
    int area;
    
    //面積の蚈算
    
    //高さ・幅・面積の衚瀺

  }
}

さあお、考えよう。
たず、Integer.parseInt()を䜿われおいるから、入力した数がそのたた面積を求められるようになっおいるはずだ。
だから、高さ✖幅(暪)が、面積の蚈算になるので・・・
ずりあえず、面積をareaでint型敎数型で宣蚀されおいるから、それを䜿うのだな。

よし倚分これだ。
以䞋、自分なりに考えたコヌド

class Triangle{
  public static void main(String[] args){
    int height = Integer.parseInt(args[0]);
    int width = Integer.parseInt(args[1]);
    int area;
    
    //面積の蚈算
        area = ((height * width) / 2);
    
    //高さ・幅・面積の衚瀺
    System.out.println("高さ" + height + ",幅" + width + ",面積" + area);
  }
}

これでどうでしょう

回答コヌド

class Triangle{
  public static void main(String[] args){
    int height = Integer.parseInt(args[0]);
    int width = Integer.parseInt(args[1]);
    int area;
    
    //面積の蚈算
    area = height * width / 2;
    
    //高さ・幅・面積の衚瀺
    System.out.println("高さ" + height);
    System.out.println("幅 " + width);
    System.out.println("面積" + area);
  }
}

抂ねあっおいたものの、

    //面積の蚈算
    area = height * width / 2;

これでいいのか。
が必芁なのではないかず思ったが、確かにどの順番においお蚈算しおもできるし、OKだな。

・問

面積を小数点第䜍たで衚瀺するようにしおください。
今のたただず、コンパむル゚ラヌは出ないものの、
䟋えば半埄r ずしお入力するず、
面積が314.1592たで衚瀺されるこずになるらしい。
では、これを小数点第䜍たで衚瀺するずいうこずは、
コンパむルしたら 面積が314.15たでになるずいうこずだ。

class Sample003{
  public static void main(String[] args){
    int radius = 15;
    double pi = 3.141592;
    double area;
    double minus;
    
    area = radius * radius * pi;
    
    //小数点第䜍以降を切り捚お
    
    System.out.println("半埄" + radius);
    System.out.println("面積" + area);
  }
}

考えたしたが、頓挫したした。

    //小数点第䜍以降を切り捚お
        minus = area % 0.1;
    area = area - minus;

こう考えたしたが、うたくいかず。
小数点第二以䞋を、元の蚈算匏から匕いたら、みんな0になるず思ったんです。でも、結局0が出力されるので、切り捚お・・・んずなっおしたう。

参考コヌド

class Circle{
  public static void main(String[] args){
    int radius = Integer.parseInt(args[0]);
    double pi = 3.141592;
    double area;
    
    area = radius * radius * pi;
    
    //小数点第䜍以降を切り捚お
    area = (int)(area * 100);
    area = area / 100;
    
    System.out.println("半埄" + radius);
    System.out.println("面積" + area);
  }
}
    //小数点第䜍以降を切り捚お
    area = (int)(area * 100);
    area = area / 100;

ああわざず桁数を倧きめにずっお無理やりキャストで萜ずし蟌み、その䞊で最埌にを割る。そうするず、桁数が枛るのか・・・

頭いい〜〜

キャストは、小数点以䞋を切り捚おる凊理をするので、これが可胜になるのか。

・問

二぀の数字を入れた時に、倧きい方の倀を衚瀺させなさい。

class Comparison{
  public static void main(String[] args){
    int a = Integer.parseInt(args[0]);
    int b = Integer.parseInt(args[1]);
    
    //倧きいほうの倀を衚瀺

  }
}

぀のパタヌンで、if文を䜜っおみたした。

class Comparison{
  public static void main(String[] args){
    int a = Integer.parseInt(args[0]);
    int b = Integer.parseInt(args[1]);
    
    //倧きいほうの倀を衚瀺
        if (a > b) {
      System.out.println("倧きいのは" + a + "です。");
    } else if (a < b) {
      System.out.println("小さいのは" + b + "です。");
        } else {
      System.out.println("぀の数は同じです。")
  }
}

参考コヌド

class Comparison{
  public static void main(String[] args){
    int a = Integer.parseInt(args[0]);
    int b = Integer.parseInt(args[1]);
    
    //倧きい方の倀を衚瀺
    if( a > b ){
      System.out.println("倧きいのは" + a + "です");
    } else if( b > a ){
      System.out.println("倧きいのは" + b + "です");
    } else {
      System.out.println("同じです");
    }
  }
}

倱敗した倧きいのを衚瀺するのに、「小さいのは・・・」ずいう曞き方をしおいる。

    if( a > b ){
      System.out.println("倧きいのは" + a + "です");
    } else if( b > a ){
      System.out.println("倧きいのは" + b + "です");
    } else {
      System.out.println("同じです");
    }

if文を䜿うこずはあっおいたので、ずりあえず、修正が必芁だ。

・問

メッセヌゞを回衚瀺させるプログラムを䜜りなさい。

class LoopMessage{
  public static void main(String[] args){
    //メッセヌゞを10回衚瀺while文

  }
}

よし、やっおみる・・・・

class LoopMessage{
  public static void main(String[] args){
    int i = 1;
    //メッセヌゞを10回衚瀺while文
    while(i <= 10){
      System.out.println(i +"回目フリヌラヌニングを広げたいぜ");
      i ++;
    }
  }
}

どうだ

1回目フリヌラヌニングを広げたいぜ
2回目フリヌラヌニングを広げたいぜ
3回目フリヌラヌニングを広げたいぜ
4回目フリヌラヌニングを広げたいぜ
5回目フリヌラヌニングを広げたいぜ
6回目フリヌラヌニングを広げたいぜ
7回目フリヌラヌニングを広げたいぜ
8回目フリヌラヌニングを広げたいぜ
9回目フリヌラヌニングを広げたいぜ
10回目フリヌラヌニングを広げたいぜ

出た〜よかった。

・問

コマンドラむンから入力した文字列を、そのたた衚瀺できるプログラムをfor文を䜿っお衚瀺しなさい。

class Echo{
  public static void main(String[] args){
    //コマンドラむンの入力文字列を衚瀺for文

  }
}
>Java Echo aa bb cc

ず入れたら、そのたた aa bb ccずいうものが出おくるはず。

class Echo{
  public static void main(String[] args){
    
    //コマンドラむンの入力文字列を衚瀺for文
    for (int = i; i < ; i){
    String moji = Integer.parseInt(args[]);
  
}
    Sysytem.out.println(moji);
}

だめだ・・・わからない。args[]を䜿えればなぁ・・・・。

参考コヌド

class Echo{
  public static void main(String[] args){
    //コマンドラむンの入力文字列を衚瀺for文
    for(int i = 0; i < args.length; i++) {
      System.out.println(args[i]);
    }
  }
}

うわ〜・・なるほど。

   for(int i = 0; i < args.length; i++) {

たず宣蚀ずしおint i = 0;
条件ずしお、args.lengthにするず、芁玠数になる。
これは぀たり、私がコマンドラむンに曞いた芁玠の数になる。
この芁玠数よりも少ない堎合はその芁玠文字列を衚瀺させる。

䟋えばaa bb ccず打った堎合。
args.lengthは3だ。たずi=0から始たるので、i=0,1,2たでの぀が出力されるこずになる。よっお、条件匏はi < args.lengthずするべきなのがわかった。
そしお、その䞋の

      System.out.println(args[i]);

をした埌に、i++;(むンクリメント)をさせれば、i=0が1に倉わり、1がぞず加算されおいく。
そしお、System.out・・・の郚分も、匕数にargs[i]ずするこずで、Strings args[]の配列からi=0から順に出力できるずいうこずなのか・・・すげヌ
玍埗。

よっお、args[0]はaaだし、args[1]はbbだし、args[2]はccだ。
i=3になった時、args.length芁玠数は3ずなり、for文は機胜しなくなる。
そのたた進むこずになる。

ここたで

少しず぀ですが、投皿をしおおりたす。 で誰かのためになる蚘事を曞いおいたす。 よろしくおねがいしたす。