制御文と配列を用いてオリジナルのJavaアプリケーションによる初級問題(なるべく短い行数で)を作成し、模範解答例を示せ。
併せて、同様な動作を行うC言語のソースコードを示せ。
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つの文だけの場合、{}を省略
することもできる
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
|
今回の課題は自分で問題を作るという変わった課題だったが、短い行数で作るというのは
思っていたより大分難しかった。結局どうにか作ってみたが、相当しょぼいものになって
しまった。またスタイルシートについてもこれからいろいろ理解して試してみたい。
戻る
Wikiに戻る