<本章の目的> for 文を習得する。C言語、C++言語とほぼ一緒。ああっ、とばさないでっ(笑)!
●問題6-1 for 文が終了した後の制御変数の値を表示するプログラムを作って下さい。
○答え
public class CountOk{
public static void main(String[] args){
int i;
for(i=0;i<3;i++){
System.out.println(i);
}
System.out.println("i="+i);
}
}
○実行結果
D:\atsushi\Java\List6-7>java CountOk
0
1
2
i=3
-- Press any key to exit (Input "c" to continue) --
○解説
for 文の条件式は if 文らと同じく boolean 型です。
答えで重要なのは、int 型変数 i を宣言している場所です。
C言語、C++言語では for 文の引数で変数宣言しても、
それはブロックの外で宣言されたと見なされました。
ところがJava言語では、ブロックの中で宣言されたと見なされます。
したがって、for 文の引数で宣言された変数は for ループの内部でしか使うことが出来ません。
●問題6-2 キー入力した文字列の各文字の文字コード( Unicode )を表示するプログラムを作って下さい。
○答え
import java.io.*;
public class ShowUnicode{
public static void main(String[] args){
System.out.println("文字列を入力して下さい。");
BufferedReader reader=new BufferedReader(new InputStreamReader(System.in));
try{
String line=reader.readLine();
for(int i=0;i<line.length();i++){
char c=line.charAt(i);
System.out.println("'"+c+"'の文字コードは"+(int)c+"です。");
}
}catch(IOException e){
System.out.println(e);
}
}
}
○実行結果
D:\atsushi\Java\ListA3-3>java ShowUnicode
文字列を入力して下さい。
abcABC123
'a'の文字コードは97です。
'b'の文字コードは98です。
'c'の文字コードは99です。
'A'の文字コードは65です。
'B'の文字コードは66です。
'C'の文字コードは67です。
'1'の文字コードは49です。
'2'の文字コードは50です。
'3'の文字コードは51です。
-- Press any key to exit (Input "c" to continue) --
○解説
文字の文字コードを表示させる為には、int 型にキャストしなければなりません。
Java言語で採用されている Unicode も abc のような連続した文字の文字コードは、
やはり連続した値をとることが分かります。
C言語、C++言語で用いた前提がJava言語でも使えるのですね。
●問題6-3 九九の表を作るプログラムを作って下さい。
public class DrawKukuTable2{
public static void main(String[] args){
for(int i=1;i<10;i++){
for(int j=1;j<10;j++){
System.out.print(i+"*"+j+"="+(i*j)+"\t");
}
System.out.println("");
}
}
}
○実行結果(ホームページ作成ソフトの都合により体裁が崩れています)
D:\atsushi\Java\ListA6-3>java DrawKukuTable2
1*1=1 1*2=2 1*3=3 1*4=4 1*5=5 1*6=6 1*7=7 1*8=8 1*9=9
2*1=2 2*2=4 2*3=6 2*4=8 2*5=10 2*6=12 2*7=14 2*8=16 2*9=18
3*1=3 3*2=6 3*3=9 3*4=12 3*5=15 3*6=18 3*7=21 3*8=24 3*9=27
4*1=4 4*2=8 4*3=12 4*4=16 4*5=20 4*6=24 4*7=28 4*8=32 4*9=36
5*1=5 5*2=10 5*3=15 5*4=20 5*5=25 5*6=30 5*7=35 5*8=40 5*9=45
6*1=6 6*2=12 6*3=18 6*4=24 6*5=30 6*6=36 6*7=42 6*8=48 6*9=54
7*1=7 7*2=14 7*3=21 7*4=28 7*5=35 7*6=42 7*7=49 7*8=56 7*9=63
8*1=8 8*2=16 8*3=24 8*4=32 8*5=40 8*6=48 8*7=56 8*8=64 8*9=72
9*1=9 9*2=18 9*3=27 9*4=36 9*5=45 9*6=54 9*7=63 9*8=72 9*9=81
-- Press any key to exit (Input "c" to continue) --
○解説
print メソッドは改行しない println メソッドです。
●問題6-4 0 〜 9 の棒グラフ( * を横に並べる)を書くプログラムを作って下さい。
○答え
public class DrawGraph1{
public static void main(String[] args){
for(int i=0;i<10;i++){
System.out.print(i+":");
for(int j=0;j<i;j++){
System.out.print("*");
}
System.out.println("");
}
}
}
○実行結果
D:\atsushi\Java\List6-4>java DrawGraph1
0:
1:*
2:**
3:***
4:****
5:*****
6:******
7:*******
8:********
9:*********
-- Press any key to exit (Input "c" to continue) --
○解説
C言語、C++言語と一緒。