Report#4


    1.課題
     制御文と配列を用いてオリジナルのJavaアプリケーションによる初級問題(なるべく短い行数で)を作成し、模範解答例を示せ。
     併せて、同様な動作を行うC言語のソースコードを示せ。
    

    2.解答及び考察

    1.問題

    かけ算九九の7の段を表示せよ。ただし、以下の条件を満たすこと 
     1. 0〜9までをかけた値を表示せよ 
     2. 制御文と配列を用いよ 
     3. 配列要素一つ一つに入っている値を示しながら作成せよ 
    

    2.解答


    (1)kakezan.java
    ソースコード
    public class kakezan { public static void main(String[] args) { int suuji[]; suuji = new int[10]; for (int i = 0; i < 10; i++) { suuji[i] = i * 7; } System.out.println("配列要素の番号とその中身を表示"); for (int i = 0; i < 10; i++) { System.out.println("配列要素 " + i + " 番目は " + suuji[i]); } } }

    実行結果
    配列要素の番号とその中身を表示
    配列要素 0 番目は 0 
    配列要素 1 番目は 7 
    配列要素 2 番目は 14
    配列要素 3 番目は 21
    配列要素 4 番目は 28
    配列要素 5 番目は 35
    配列要素 6 番目は 42
    配列要素 7 番目は 49
    配列要素 8 番目は 56
    配列要素 9 番目は 63
    

    3.考察

    1.制御文について
    
    a. 制御文とは 
    
    ・Javaを含めた多くにプログラミング言語は「順序どおり実行する」 
     「繰り返して実行する」「条件を判断して実行する」のいずれか 
     の構造でプログラミングを記述する。こうした構造を「制御構造」 
     といい、制御構造を記述するための文のことを「制御文」と呼ぶ。 
    
    b. if文 
    
    ・if文はもし、条件式がtrueなら、次のブロックを実行し、条件式 
     がfalseなら、次に進む
    
    if(条件式) { 条件式がtrueなら、この部分を実行 } 条件式がfalseなら、次に進む
     
    ・条件を満たしたいときに実行したい処理が1つの文だけの場合、{}を省略 
      することもできる
    
     
    
    if (条件式)   実行する命令;
    c. if...else if文 
    
    ・if...else if文はもし、条件式がtrueなら、次のブロックを実行 
     し、条件式がfalseなら、さらに次の条件式を評価し、それにより 
     処理を分ける
    
     
    
    if(条件式) { 条件式がtrueなら、この部分が実行される } else if  1つ目の条件式がfalseなら、さらにこの条件が判定される { 2つ目の条件式がtrueなら、この部分が実行される } else { 2つ目の条件式がfalseなら、この部分が実行される }
    d. switch...case文 
    
    ・switch...case文は条件式の値を判定し、caseの値と一致すれば、 
     そのcaseの次の文を実行し、値の一致するcaseがなければ、 default 
     の次の文を実行する
    
     
    
    switch (条件式) { case 値1:  条件式の値が値1なら、以下の文が実行される   実行文; break; case 値2:  条件式の値が値2なら、以下の文が実行される  実行文; break; default:  条件式の値が値1、値2、値3、以外なら、以下の文が実行される  実行文;  break; }
    e. while文 
    
    ・while文は条件式がtrueなら次のブロックが実行され、その後で条 
     件式がfalseになるまで、それが繰り返される
    
    while (条件式)  条件式は繰り返し評価される { 条件式がtrueなら、この部分が実行される }  条件式がfalseなら、次に進む
    f. do...while文 
    
    ・do...while文はとりあえず1回実行してから条件式を判定する 
     条件式の終わりに「;」が必要なことに注意!
    
    do { この部分を1回実行し、条件式がtrueなら、再度実行 } while (条件式);  条件式は繰り返し評価される    条件式がfalseなら、次に進む
    g. for文 
    
    ・for文もwhile文と同じような繰り返し文である。
    
    for (初期化式; 条件式; 再初期化式) {    条件式がtrueなら、この部分が実行される }
    初期化式  :繰り返しの前に一度だけ実行される 
    条件式   :この式の真偽により、繰り返しの実行、中止がきまる 
    再初期化式 :繰り返しブロック内の文の実行後に実行される
    
    ・for文やwhile文のような繰り返し文で、終了条件を指定しな 
     いと無限ループを実行することができる 
    
    for文による無限ループ
     
    
    for(;;) { ずっと繰り返す処理 }

    while文による無限ループ
     
    
    while(true) { ずっと繰り返す処理 }
    i. continue文 
    
    ・continue文はfor文などの繰り返し文で使うことができる。しかし、 
     break文とは違い、switch...case文では使えない。
     
    ・continue文が実行されると、繰り返しブロックの実行が終了し、 
     条件式が評価される。つまり、continue文はその回の繰り返しを 
        スキップする。
    

    2.配列について
    
    ・配列を使うには、配列を扱う変数を用意し、配列を構成する複数の 
     変数(配列変数)を確保する。
    
    ・new演算子は、配列要素を確保するためのもので、上のリストの場合、 
     int型の変数を10個確保している。 
    
    ・配列はString args[]、String[] argsの2つの方法で宣言可能 
    


    同様な動作を行うC言語のソースコード


    (2)kakezan.c
    ソースコード
    #include int main() { int suuji[10]; int i; int n; for (i= 0; i < 10; i++) { suuji[i] = i * 7; } printf("配列要素の番号とその中身を表示\n"); for (n = 0; n < 10; n++) { printf("配列要素 %d 番目は %d\n" ,n ,suuji[n]); } return(0); }

    実行結果
    配列要素の番号とその中身を表示
    配列要素 0 番目は 0 
    配列要素 1 番目は 7 
    配列要素 2 番目は 14
    配列要素 3 番目は 21
    配列要素 4 番目は 28
    配列要素 5 番目は 35
    配列要素 6 番目は 42
    配列要素 7 番目は 49
    配列要素 8 番目は 56
    配列要素 9 番目は 63
    


    3.感想
    今回の課題は自分で問題を作るという変わった課題だったが、短い行数で作るというのは
    思っていたより大分難しかった。結局どうにか作ってみたが、相当しょぼいものになって
    しまった。またスタイルシートについてもこれからいろいろ理解して試してみたい。
    


    戻る
    Wikiに戻る