Report3

考察へジャンプ

/*
* 作成日: 2004/11/11
*/

/**
* Test06
*
* @author j04021
*/

プログラム 実行結果

public class Report03 {

 public static void main(String[] args) {

  System.out.println("・コメント");
  Cmnt();
  System.out.println("\n\n・文字列出力");
  Mjrt();
  System.out.println("\n\n・変数宣言と数値出力");
  Hnsc();
  System.out.println("\n\n・繰り返し処理");
  Krks();
  System.out.println("\n\n・条件処理");
  Jksr();
  System.out.println("\n\n・データ型");
  Date();
  System.out.println("\n\n・算術演算子");
  Snjt();
  System.out.println("\n\n・関係演算子");
  Knki();
  System.out.println("\n\n・論理演算子");
  Rnri();
  System.out.println("\n\n・インクリメント/デクリメント演算子");
  Inde();
 }

  public static void Cmnt() {       // mainの記述
   System.out.print("My name is ");  // 文字列出力する
   System.out.println("Ooki Kinjo");  /* これもコメント */
  }
  public static void Mjrt() {
   System.out.print("AAAAA");
   System.out.print("BBBBB¥nCCCCC¥n");
   System.out.println("DDDDD");
   System.out.println("EEEEE¥nFFFFF¥n¥nGGGGG¥n");
   System.out.println("HHHHH " + "\"IIIII\"");     // "を表示させる
  }
  public static void Hnsc() {
   int a, b, sum;
   long i;
   a = 100;
   b = 200;
   sum = a + b;
   i = 1000000L;
    System.out.print("a=");       // 文字列だけ出力
    System.out.println(a);        // 数値だけ出力
    System.out.println("b=" + b);     // 文字列と数値を出力
    System.out.println("a+b=" + sum);  // 結果を出力
    System.out.println("a+b=" + (a+b));  // 直接計算させる
    System.out.print("million = ");
    System.out.println(i);         // long型を出力
  }
  public static void Krks() {
   int i, sum;

  for (i=1; i<=5; i++)
   System.out.println("i=" + i);

   sum = 0;
   for (i=1; i<=5; i++) {
    sum = sum + i;
   System.out.println("sum=" + sum);
   }
  }
  public static void Jksr() {
  int i;

   for (i=1; i<=5; i++) {
    System.out.print("i=" + i);
    if (i < 3)
    System.out.println(" 3未満です");
   else
    System.out.println(" 3以上です");
   }
  }
  public static void Date() {
   char ch;
   boolean bdt;
   int idt;
   long ldt;
   float fdt;
   double ddt;
   String ss;
   final int CNST1 = 1234;       // final定数

   ch = 'J';    // 半角文字
    System.out.println("文字=" + ch + " code=" + (int)ch);
   ch = 'ジ';   // 全角文字
    System.out.println("文字=" + ch + " code=" + (int)ch);


   bdt = true;
   System.out.println("bdt = " + bdt);

   idt = 1234567890;
   System.out.println("idt = " + idt);

   ldt = 1234567890123456789L;   // Lはlong値を示す
    System.out.println("ldt = " + ldt);

   fdt = 123.456F; // Fはfloat値を示す
    System.out.println("fdt = " + fdt);

   ddt = 123.456789012345;
    System.out.println("ddt = " + ddt);

   idt = 022; // 8進数の22
    System.out.println("8進22 = " + idt);

   idt = 0x22; // 16進数の22
    System.out.println("16進22 = " + idt);

   ddt = 5.67e4; // 指数表現の56700
    System.out.println("指数 = " + ddt);

   ch = '\n'; // エスケープ文字
    System.out.println("改行文字コード = " + (int)ch);

   ss = "AAAA\tBBBB";    // 文字列定数(エスケープ文字を含む)
    System.out.println("ss = " + ss);

   System.out.println("CNST1 = " + CNST1);
  }
  public static void Snjt() {
   int a, b, c;
   double f, g, h;

   a = 100; System.out.println("a = " + a);
   b = 30; System.out.println("b = " + b);
   c = a + b; System.out.println("a+b = " + c);   // 加算
   c = a - b; System.out.println("a-b = " + c);    // 減算
   c = a * b; System.out.println("a*b = " + c);   // 乗算
   c = a / b; System.out.println("a/b = " + c);   // 整数除算
   c = a % b; System.out.println("a%b = " + c);  // 整数剰余

   f = 90.0; System.out.println("f = " + f);
   g = 40.0; System.out.println("g = " + g);
   h = f / g; System.out.println("f/g = " + f/g);   // 浮動小数点数除算
  }
  public static void Knki() {
   int a;
   for (a=1; a<=5; a++) {
    System.out.println("--------" + a);
   if (a < 2) System.out.println("2未満");
   if (a >= 4) System.out.println("4以上");
   if (a == 3) System.out.println("3である");
   if (a != 3) System.out.println("3ではない");
   }
  }
  public static void Rnri() {
   int a;

   for (a=1; a<=5; a++) {
    System.out.println("--------" + a);
   if (a>=2 && a<=4)
    System.out.println("2以上かつ4以下");
   if (a<2 || a>4)
    System.out.println("2未満または4より大");
   if (!(a==1 || a==3))
    System.out.println("1または3、ではない");
   }
  }

  public static void Inde() {
   int dt[] = {100, 200, 300};    // 配列を確保
   int n;

 // ++演算子を使わないときの記述
   n = 0;
    System.out.println(dt[n]);   // dt[0]を表示
   n = n +1;
    System.out.println(dt[n]);   // dt[1]を表示
   n = n +1;
    System.out.println(dt[n]);   // dt[2]を表示

 // ++演算子を使ったときの記述
   n = 0;
    System.out.println(dt[n++]);  // dt[0]を表示
    System.out.println(dt[n++]);  // dt[1]を表示
    System.out.println(dt[n++]);  // dt[2]を表示

 // --演算子を使う
   n = 5;
   while (--n >= 0) {         // n回繰り返す
    System.out.println("n=" + n);
   }
  }

}

 

 

 

 

 

 

 

 

 

 

・コメント
My name is Ooki Kinjo

 

・文字列出力
AAAAABBBBB
CCCCC
DDDDD
EEEEE
FFFFF

GGGGG

HHHHH "IIIII"

・変数宣言と数値出力
a=100
b=200
a+b=300
a+b=300
million = 1000000

 

 

・繰り返し処理
i=1
i=2
i=3
i=4
i=5
sum=1
sum=3
sum=6
sum=10
sum=15

 

・条件処理
i=1 3未満です
i=2 3未満です
i=3 3以上です
i=4 3以上です
i=5 3以上です

 

 

・データ型
文字=J code=74
文字=ジ code=12472
bdt = true
idt = 1234567890
ldt = 1234567890123456789
fdt = 123.456
ddt = 123.456789012345
8進22 = 18
16進22 = 34
指数 = 56700.0
改行文字コード = 10
ss = AAAA BBBB
CNST1 = 1234

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

・算術演算子
a = 100
b = 30
a+b = 130
a-b = 70
a*b = 3000
a/b = 3
a%b = 10
f = 90.0
g = 40.0
f/g = 2.25

 

・関係演算子
--------1
2未満
3ではない
--------2
3ではない
--------3
3である
--------4
4以上
3ではない
--------5
4以上
3ではない

 

・論理演算子
--------1
2未満または4より大
--------2
2以上かつ4以下
1または3、ではない
--------3
2以上かつ4以下
--------4
2以上かつ4以下
1または3、ではない
--------5
2未満または4より大
1または3、ではない

 

・インクリメント/デクリメント演算子
100
200
300
100
200
300
n=4
n=3
n=2
n=1
n=0

 

・考察

コメント ( PP.28~30 )

javaプログラムのコメントには、以下の3つがある。

 
記述 名前 意味
// コメント 単一行コメント このマーク以降の行の文字がコメントとして扱われる。
このコメントを使って1行のコードを一時的に削除する事も出来る。

/*
コメント
*/

複数行コメント 単一行コメントとは違い、複数行にわたってコメントアウトする事が出来る。
こちらも任意のコードを一時的に削除するために用いられる。
/**
コメント
*/
ドキュメンテーションコメント ドキュメンテーションコメントの利点はJavadocなどのツールを使ってソースファイルからコメントを抜き出す事が出来る。

コメントとは自分や他の人のためにソース内に書き込むメモのようなものです。コメントはプログラマのために存在し、
そのコードの機能や使用方法を思い出す事ができるように、意味や目的などを記します。

  

System.out.print 〜
printメソッド 出力結果 意味
print(" AAAAA ") AAAAA(改行無し) 出力したい文字列を「" "」で挟む。
println(" AAAAA ") AAAAA(改行あり) printと同様。また文字列出力のあとに改行する。
print(" AAA\nAA ") AAA
AA
「\」はバックスラッシュコードという。「\n」は改行。
print("AAA" + "AA") AAAAA 2つに分けて書く必要がある場合は「+」で繋げる。
print("\"AAA\"" + "AA" ) "AAA"AA 「\"」で「"」を表示できる。

バックスラッシュコード(P.98)

  
コード     意味
\b バックスペース
\n 改行
\r キャリッジリターン
\f フォームフィールド
\t 水平タブ
\" 二重引用符
\'

一重引用符

\0 null値
\\ バックスラッシュ
\N 8進数定数( N = 0 ~ 7 )
\NN 8進数定数( N = 0 ~ 7 )
\MNN 8進数定数( N = 0 ~ 3 , N = 0 ~ 7 )
\uxxxx Unicode文字(xxxxは4桁の16進数定数)

なお、バックスラッシュコードは文字定数です。
そのため、文字変数に代入する時は次のように一重引用符で囲まれなければなりません。

  
char ch;
ch = ' \t ' ; 
      // chにタブ文字を代入する

 

変数とは、名前の付いたメモリ位置の事で、変数には何らかの値を格納する事ができます。

  
Javaの8つの基本データ型
説明 分類
byte 8ビット符号付き整数 符号付整数型
short 16ビット符号付き整数
int 32ビット符号付き整数
long 64ビット符号付き整数
char 16ビットUnicodeキャラクタデータ 文字(整数型)
float 32ビット符号付き浮動小数点 浮動小数点数型
double 64ビット符号付き浮動小数点
boolean 真偽値 論理値型

変数と同じように定数にもデータ型がある。整数の定数はデフォルトでint型、 小数点数の定数のデフォルトはdouble型になっている。
整数でlong型の定数を明確に示す場合は数値の末尾にLかlを、小数点数でdouble型の定数を明確に示す場合は数値の末尾にDかdをつける。
ただし、byte型とshort型は明確に示 す方法はない。

  
int a = 123;        //int型の定数
long b = 123L;      //long型の定数
double c = 123.0;     //double型の定数
float d = 123.0f;     //float型の定数
double e = 1.23e3;    //1.23×10の3乗
byte f = 0X1a;      //16進数の定数

 


変数の修飾子
変数宣言の直前に指定できる修飾子は7種類あります。その機能を簡単にまとめ ると次のようになります。

キーワード 説明
final 定数として使える変数
private 同じクラスのコードからしかアクセスできない変数
protected サブクラスまたは同じパッケージ内のコードからしかアクセスできない変数
public ほかのクラスからアクセスできる変数
static インスタンス変数ではない変数
transient クラスの永続的な状態の一部ではない変数
volatile 不意に値が変更される事がある変数

 

 

繰り返し処理

for文について
for文は for(1,2,3){}の構造となっており1が初期値の式、2が繰り返しの条件式、3が繰り返し後の変化の式となっています。
そして、ループしていく中で実行されるのが{}の中の命令です。

while文について
while文は while(1) 文1の構造になっていて1がループするための条件式になっており、条件を満たしていれば
文1が繰り返し実行され続けますが、条件を満たさないと文1は実行されません。

 

・・演算子

算術演算子(P.21)

  
演算子 説明
+ 加算
減算(単項マイナス)
* 乗算
/ 除算
% 乗除
+= 加算代入
−= 減算代入
*= 乗算代入
/= 除算代入
%= 乗除代入
++ インクリメント
−− デクリメント

これらの演算子には真偽値のオペランドを使用する事ができません。また - には2つの意味があり第一の用途は減算演算子です。
第二の用途は数値の符号を逆にするための単項演算子のマイナスです。
* / % の各演算子は + と - よりも演算する優先度が高くなります。
+ や - を先に優先してやるには小括弧を使用して評価順序を変更する事です。

例…

100 - 50 * 2 = 0 括弧無し
(100 - 50) * 2 = 100 括弧有り

 

 

関係演算子(P.85)

  
演算子 意味 例の意味
== 等しい i == j i と j は等しい
!= 等しくない i != j i は j と等しくない
> より大きい i > j i は j より大きい
< より小さい i < j i は j より小さい
>= より大きいか等しい i >= j i は j 以上
<= より小さいか等しい i <= j i は j 以下

*注…これらの演算子では2つの不等号の間にスペースを入れてはいけない。

 

論理演算子(P.100)

  
演算子 動作 例の説明
& 論理積 a & b AND。2つの項が真の時のみ結果が真となる論理演算
| 論理和 a | b
OR。2つの項が偽の時のみ結果が偽となる論理演算
^ 排他的論理和 a ^ b Exclusive OR。2つの項が異なる時のみ結果が真となる論理演算
! 否定 a ! b NOT。項の真偽が逆になる論理演算
&& 論理積(ショートカット) a && b a が偽なら、b は実行しない
| | 論理和(ショートカット) a | | b     〃

論理積の場合両方のオペランドが真の場合のみ真となるので最初(左)のオペランドが偽と判った時点で結果が決まります。
そのためいちいち2つオペランドを評価しなくても良いわけです。
これは論理和でも同じような事が言えます。これにより論理積と論理和の関係する状況でショートカット演算子を使うと
効率的なコードが生成でき無駄が省かれるという事になります。

 

  
【 真理値表 】
p q p & q p | q p ^ q ! p
 0  0    0    0    0    1
 0  1    0    1    1    1
 1  0    0    1    1    0
 1  1    1    1    0     0

 

 

  
【演算子の優先順位】

高い

 

 

 

低い

!
> >= < <=
== !=
&
^
|
&&
| |

関係演算子と論理演算子では共に算術演算子よりも低い優位順位となります。

  
  5 + a > b - 10

は下のものと等価となります。

  
  (5 + a) > (b - 10)

 

 



・感想

今回はHTMLで初めて表を作ってみた。 思っていたよりもややこしくて大変だった。

正直、これに力を入れすぎて、本来力を入れるべき考察がお粗末な物になってしまった気がします。 

テストも近いという事で、もっと早くから取りかかればよかったです。

 

 

参考文献

・独習Java第2版
        ジョセフ・オニール 著

・とほほのWWW入門