Java Basic Level 4〜Boolean〜

イントロダクション

再度、復習の意味で以前記載したものをやります。
今回はBooleanの使い方をやります。前回までは、Javaを初めて触る人向けに記載しました。今回からは、少し触ったことがある人向けに記載します。
ちなみに、前回記載したものは、こちら

解説

Introduction

I will write again what how to use value of boolean. And Tihs time, Write about Boolean.

ロードマップ

  1. Booleanの扱い方 今回
  2. If文の使い方
  3. If文の使い方〜応用編〜
  4. ループ処理〜For文〜
  5. ループ処理〜For文の応用〜
  6. ループ処理〜While文〜
  7. ループ処理〜While文の応用〜
  8. ループ処理〜Do While文〜
  9. ループ処理〜Do While文の応用〜
  10. 演算子の整理
  11. 演算子の応用
  12. まとめ

Road Map

  1. How to use Boolean This time
  2. How to use if statement
  3. Training of  if statement
  4. How to use loop statement 〜While〜
  5. Training of Loop〜While〜
  6. How to use loop statement 〜While〜
  7. Training of Loop〜While〜
  8. How to use loop statement 〜Do While〜
  9. Training of Loop〜Do While〜
  10. Summary of operator
  11. Training of operator
  12. Summary

Booleanの使い方

Booleanとは「True(真)」と「False(偽)」の値を入れるためのデータ型です。

boolean hantei = 1 == 1; // True
hantei = 1== 2 // False
String moji = "abc";
hantei = "abc".equals(moji); // True
hantei = "abb".equals(moji); // False

簡単な使い方は上記のような使い方です。実際には「if」文と合わせて以下のように記述します。

public static void main(String[] args) {
   if ("test".equals(args[0]) {
      System.out.println("プログラム引数は" + args[0] + "です");
   }
}

上記はプログラム引数(プログラムを起動するときに渡す引数です)

プログラムを実行するときはコマンドプロンプト下のようなコマンドを叩きます。

コマンドプロンプトの扱い方に関しては下の動画を参照ください。

まずはコンパイル

javac Hello.java

そして実行

java Hello

MACでの実行になりますが、Windowsでも同じコマンドです。

Windowsでの実行はこちらです。

How to use Boolean

Boolean is Data type of variable whitch you can set true and false. This is sample of use Boolean.

boolean hantei = 1 == 1; // True
hantei = 1== 2 // False
String moji = "abc";
hantei = "abc".equals(moji); // True
hantei = "abb".equals(moji); // False

This is a example of simple case. actually we ofen use in if statement

public static void main(String[] args) {
   if ("test".equals(args[0]) {
      System.out.println("Program argument is " + args[0]);
   }
}

That program print to console a program argument.

今回は問題がありません。次回からは問題を作ります。
Javaを楽しんでください!

There is no questions. Next time, I will make questions.
Have a gooday and enjoy java. see you next time!


IF文とBoolean

IF文だけではありませんが、論理演算という処理があります。これは返却値にBooleanを返す処理ですが、基本的に「条件分岐」を行う処理が多いです。よく見かけるコードでは下のようなものがあります。

String str = "";
if (isEmpty(str)) {
  System.out.println("空です。");
} else {
  System.out.println("「" + str + "」です。");
}

isEmpty()は、引数の文字列が空文字、もしくはNULLの時にTRUEを返すメソッドです。具体的には下のようなコードです。

public boolean isEmpty(String str) {
   boolean isEmpty = false;
   isEmpty = str == null || "".equals(str);
   return isEmpty;
}

つまり、メソッドの返り値をIF文のかっこの中に書いた場合は、メソッドの返り値でTRUE、FALSEが渡されるのでIF文の中に処理が入るかどうか決まる。ということです。

上のコードを分解する

上のコードを分解します。つまり、一つずつ変数に結果を取り出して、デバック実行したときに値を確認できる形のコードに直します。

String str = "";
boolean isEmpty = isEmpty(str);
if (isEmpty) {
  System.out.println("空です。");
} else {
  System.out.println("「" + str + "」です。");
}

大したことをしていませんが、こんな感じです。メソッドを使用しない場合は、下のように書いてもよいです。
「isEmpty()」を「str == null || "".equals(str)」に書き換えた形です。色々な場所で使えそうな処理はメソッドという形で作っておけば
何度も使うことができます。1回しか使わないのであれば「str == null || "".equals(str)」を書いてもよいと思いますが、「isEmpty()」は汎用性のある処理なので、メソッドで使った方が良いと思います。

String str = "";
if (str == null || "".equals(str)) {
  System.out.println("空です。");
} else {
  System.out.println("「" + str + "」です。");
}


今回の記事には全く関係ありませんが、Javaでこんなアプリも作れます。そして余計な音が入っています。JavaFX + Gluon

でわでわ。。。

Java Basic Level3 〜About String class〜

イントロダクション

私事ですが、以前に書いた記事を再度書き直しわかりやすくしようと思いました。一応、国際化対応しておきます。※英語圏の人は何とか読んでください

はじめの記事は、Javaを始めるのに一番はじめのプログラムを作成するところからはじめます。色々と思うところはあると思いますが、以下の点に留意してもらって、とにかくはじめてみるのが良いと思います。

とりあえず、実行と解説をして見ました。

  1. 「Javaとはなんぞや?」というのはやってから理解すれば良いと思います。
  2. 慌てずにのんびりやりましょう(笑)
  3. 「知識」と「技術」の両方を使用するので「頭で理解」と「手を動かす」の両方が必要です。
  4. インプット(座学)とアウトプット(プログラムの実行・作成)を両方やるようにしましょう。

「Javaとはなんぞや?」の答えに関しては、作って、動かして、オブジェクト指向がわかった頃に答えは出ると思います。

Introduction

As for me, I will rewrite my blog for make understand easy. i will internationally.

The first article begins by creating the first program to start Java. Let’s have fun!

I think that answers will come out when making, executing, and knowing object orientation.

ロードマップ

  1. プログラムを初めて作る人向けです。コンソール画面に「Hello World」と表示するプログラムを作成します。→Mainメソッドについて理解する

  2. 計算するプログラムを作成します。計算するためには「変数」を使用する必要があります。→変数と演算子について理解する

  3. 演算子「+」「-」「++」などを使う方法、考え方を理解

  4. 文字を操作するプログラムを作成します。文字を切ったり、つなげたりして文を編集するプログラムを作成します。→文字列クラス「String」の理解【今回】

  5. Boolean型の使い方やプログラム引数など、条件分岐やループ文などで使用します。

  6. IF文の書き方と使いかた

Road Map

  1. For those who create programs for the first time. create program for display “Hello World” on the console screan.→ To understand the main method
  2. Create program for calcurate. In order to calcurate it is nessesary to use “valiable”.→To understand “valiable” and “operator”
  3. How to use operators in java code.
  4.  Create program for manipurate characters. to edit sentencces by cutting, connecting characters.→To understand String classthis time
  5. How to use Boolean and program argument
  6. How to use if statement

文字列操作(Stringクラス)

Javaで文字を扱うときに使用するデータ型(変数の型)
として「char」と「String」があります。
charはプリミティブ型というカテゴリのデータ型で、1文字のみが変数にセットできます。「==」で比較します。
Stringは参照型(クラス)というカテゴリのデータ型で、複数の文字を変数にセットできます(なので文字列)。比較メソッド(.equals())を使用します。

⑴初期化するときは下のようにやります。

// 文字(1文字だけ)
char a = ‘a’; // シングルクォーテーション
String a = “a”; // ダブルクォーテーション

⑵比較するときは、charは「==」を使用します。
Stringはメソッドを使用します。

String a = “a”;
a.equals(“a”); // trueが出力されます。

※通常、変数のにNullが入っている場合にNullPointerExceptionで落ちてしまうので「"a".equals(a)」と記述します。

兎にも角にも、コードをみてみいないと
なんとも言えないのでこちらから
ダウンロードしてください。

String manipulation(About String Class)

if you would like to manipulate String or charactor, you can use String class and char valiable(Charactor class)

⑴ when initializing, you can wite like this

char a = ‘a’; // single quote
String a = “a”; // double quote 

⑵ how to campare charctor and String

"char" is primitive data. and you can compare using "=="

<Ex1>
char a = 'a'; iif (a == 'a') { ...};

"String" is class. and you can compare using ".equals()"

<Ex2>
String a = "a"; if (a.equals("a")) { ...};
※ usually, we write 「"a".equals(a)」.cause if a valiable is Null then get "NullPointer Exception".

<問題>

・プログラム引数に「abc」「def」を渡してその引数を
以下のようにコンソールに出力してください

<Question>
・using program argument, and output 「abc」「def」to console.

——————————————————
①引数1: abc
②引数2: def
——————————————————

・上記の表示を行なった後にchar型の値「G」と「E」を
①と②の最後の部分に追加して表示してください。

・after output console. add "G" and "E" on ①, ②

※String型の変数の後にchar型を連結できればOKです。
Eclipseの画面では下のような画面でプログラム引数を追加します。

Stringクラスのメソッド使用例

public void testString() {
    // 文字列を比較した場合
    System.out.println("*** String#equals() Sample1 ****");
    if ("test".equals("tezt")) {
        System.out.println("\"test\"と\"tezt\"は等しいです。");
    } else if ("test".equals("tezt") == false) {
        System.out.println("\"test\"と\"tezt\"は等しくありません。");
    } else {
        // 実際は例外しか返ってこないので意味のないコード
        // 想定外のケースも考慮に入れる
        System.out.println("trueもfalseも帰ってこなかった場合。");
    }
    System.out.println("*** String#equals() Sample2 ****");
    // 変数に入れた文字列を比較した場合
    String str = "test";
    String str2 = "tezt";
    if (str.equals(str2)) {
        System.out.println("\"test\"と\"tezt\"は等しいです。");
    } else {
        System.out.println("\"test\"と\"tezt\"は等しくありません。");
    }

    System.out.println("*** String#equalsIgnoreCase() Sample1 ****");
    if ("test".equalsIgnoreCase("tezt")) {
        System.out.println("\"test\"と\"tezt\"は等しいです。");
    } else if ("test".equalsIgnoreCase("Test") == false) {
        System.out.println("\"test\"と\"Test\"は等しくありません。");
    } else if ("test".equalsIgnoreCase("Test")) {
        System.out.println("\"test\"と\"Test\"は等しいです。");
    } else {
        // 実際は例外しか返ってこないので意味のないコード
        // 想定外のケースも考慮に入れる
        System.out.println("trueもfalseも帰ってこなかった場合。");
    }

    System.out.println("*** String#isEmpty() Sample1 ****");
    if ("".isEmpty()) {
        System.out.println("文字列は空です。");
    }
    String tmp = null;

    System.out.println("*** String#isEmpty() Sample2 ****");
    try {
        if (tmp.isEmpty()) {
            System.out.println("文字列はNULLです。");
        }
    } catch (NullPointerException e) {
        System.out.println("実行するとNullPoineterExceptionで落ちる。");
    }
}

Stringクラスのメソッド使用例2

String str = "0123456789ABCABC";
System.out.println("*** String#contains() Sample1 ****");
if (str.contains("012")) {
    System.out.println(str + "は「012」を含んでいます。");
}
System.out.println("*** String#contains() Sample1 ****");
if (str.contains("014")) {
    System.out.println(str + "は「014」を含んでいます。");
} else {
    System.out.println(str + "は「014」を含んでいません。");
}

System.out.println("*** String#endsWith() Sample1 ****");
if (str.endsWith("ABC")) {
    System.out.println(str + "は「ABC」を末尾にあります。");
}

System.out.println("*** String#endsWith() Sample1 ****");
System.out.println(str + "は「ABC」の文字列が" + str.indexOf("ABC") + "番目に出現します。");
System.out.println(str + "は「ABC」の文字列が最後に出現するのは" + str.lastIndexOf("ABC") + "番目に出現します。");

整形する

String#format(書式文字列)のような形で記述します。
書式文字列にはただいま%d時です。というような書き方をして「%d」に値をセットする形です。

String.format("ただいま%d時です。", 12); // ただいま12時です

サンプルプログラム

    @Test
    public void testFormat() {
        String str = "これは%d円です";
        System.out.println(String.format(str, 12));

        Date date = new Date();
        String str1 = "いま%tk時です";
        System.out.println(String.format(str1, date));

    }

でわでわ。。。
see you next time. have a good day!

関連リンク一覧

Java Basic Level2 〜Arithmetic Calculate 四則計算と変数の使い方〜

イントロダクション

私事ですが、以前に書いた記事を再度書き直しわかりやすくしようと思います。


はじめの記事は、Javaを始めるのに一番はじめのプログラムを作成するところからはじめます。「Javaとはなんぞや?」というのはやってから理解すれば良いと思います。まぁ慌てずにのんびりやりましょう(笑)
<デバックしながら解説>

→作って、動かして、オブジェクト指向がわかった頃に答えは出ると思います。

Introduction

As for me, I will rewrite my blog for make understand easy. i will internationally.

The first article begins by creating the first program to start Java. Let’s have fun!

I think that answers will come out when making, executing, and knowing object orientation.

ロードマップ

  1. プログラムを初めて作る人向けです。コンソール画面に「Hello World」と表示するプログラムを作成します。→Mainメソッドについて理解する
  2.  計算するプログラムを作成します。計算するためには「変数」を使用する必要があります。→変数と演算子について理解する【今回】
  3. 文字を操作するプログラムを作成します。文字を切ったり、つなげたりして文を編集するプログラムを作成します。→文字列クラス「String」の理解

Road Map

  1. For those who create programs for the first time. create program for display “Hello World” on the console screan.→ To understand the main method
  2. Create program for calcurate. In order to calcurate it is nessesary to use “valiable”.→To understand “valiable” and “operator”this time
  3.  Create program for manipurate characters. to edit sentencces by cutting, connecting characters.→To understand String class

計算プログラムについて(About caluculate program)

変数の宣言方法

「データ型 変数名;」のように記述します。
int num;
double d;
String moji;

この変数の宣言は宣言した時に変数にはデフォルト値が設定されます。
なので、具体的にどのような値が入るのかプログラムをみただけではわかりません。

変数の初期化方法

「データ型 変数名 = 値;」のように記述します。
int num = 1;
double d = 0.2;
String moji = "文字列";

変数の初期化に関しては、宣言の時と違い、どのような値が入っているのか、わかります。

変数の型について

これは丸暗記になります。以下の通りです。

データ型 意味
int型 整数を扱うためのデータ型
double型 小数点を含む数を扱うためのデータ型
String型 文字列を扱うためのデータ型

他にもたくさんありますが、まずはこの3つを覚えましょう。

Declearing valiable

wirte like this. →"DataType" "valiable name" = "value";
int num = 1;
double d = 0.2;
String moji = "文字列";

四則演算の方法

< 内容 >                  < 例 >
「+」足し算         int num = 1 + 1; // 変数「num」に2が入る
「-」引き算         int hiki = 2 – 1;   // 変数「hiki」に1が入る
」掛け算         int kake = 1 1; // 変数「kake」に1が入る
「/」割り算         int wari = 4 / 2; // 変数「wari」に2が入る

How to four arithmethic calculation

※変数=valiable
< sight >                  < example >
「+」addition          int num = 1 + 1; // 変数「num」に2が入る
「-」subtraction      int hiki = 2 – 1;   // 変数「hiki」に1が入る
」multiplication   int kake = 1 1; // 変数「kake」に1が入る
「/」division            int wari = 4 / 2; // 変数「wari」に2が入る

足し算を行なってみる

// サンプルコード
public class Test1_2 {
    public static void main(String[] args) {
      // int型「num1」を初期化する
      int num1 = 1;
      //int型「num2」を初期化する
    int num2 = 2;
      // String型「moji」を初期化する
      String moji = "1+2=";
      // int型「result」にnum1とnum2を足し算した結果を代入
      int result = num1 + num2;
      // 「moji」の次に「result」を文字列として繋げて表示する
      System.out.println(moji + result);
    }
}

ちなみに、変数の宣言は下のように書きます。宣言後、値を代入して使用します。

int num;
num = 9;

その他の演算(計算に使用)
< 内容 >                              < 例 >

「++」インクリメント          int num = 1++; // 変数「num」に2が入る
「–-」デクリメント               int hiki = 1–;    // 変数「hiki」に0が入る
「%」剰余                            int amari = 3 % 2 // 変数「amari」に1が入る

具体的には、下のように実装します。

  int start = 30;
  for (int i = 0; i < 3; i++) {
      // startをデクリメント
      start--;
      System.out.println("デクリメント後: " + start);
      System.out.println("そして、2で割ったときの剰余: " + start % 2);

  }

Other calculation

<サンプル>: ダウンロードできます。
<sample> : you can download.

// 変数宣言

int num1;

// 変数に値0を再セット、以前の値は削除される

num1 = 0;

public void testMethod() {
/*
 * 変数の初期化
 *  変数の宣言時に、値を代入する
 * 変数 = 値(代入)
 * valiable initialization
 * when you initialize valiable set values
 * valiable=value(substitution)
 */
 int num2 = 10;
 // 1.足し算
 num1 = num1 + num2 + 2;
 // 2.引き算
 num1 = num1 * (num1 – num2);
 // 3.掛け算
 num1 = num1 * 3;
 // 4.割り算
 num1 = num1 / 2;
 // 計算結果を表示
 System.out.println(“計算結果” + num1);
}

問題の前提条件

四則計算処理を使用して以下のような文字列をコンソールに出力してください。

[ 問題1 ]
mondai1メソッドを作成し、コンソールに以下を出力してください。
出力内容
————————–
「2 + 2 は 4です」
————————–

[Question1]
Create a method named "mondai1" for output as berrow
output sample
————————–
「2 + 2 は 4です」
————————–

 

[ 問題2 ]
mondai2メソッドを作成して、コンソールに以下を出力してください。
————————–
「10 % 3 は 1です」
————————–

[Question2]
Create a method named "mondai2" for output as berrow
output sample
————————–
「10 % 3 は 1です」
————————–

[ 問題3 ]
mondai3メソッドを作成して、コンソールに以下を出力してください。
————————–
初期値 = 30
デクリメント後: 29
そして、2で割ったときの剰余: 1
デクリメント後: 28
そして、2で割ったときの剰余: 0
デクリメント後: 27
そして、2で割ったときの剰余: 1
————————–

[Question2]
Create a method named "mondai3" for output as berrow
output sample
————————–
init vlaue = 30
after decerment: 29
surplus: 1
after decrement: 28
surplus: 0
after decrement: 27
surplus: 1
————————–


今日は、ここまでです。
でわでわ。。。
Today so far. see you next time. have a good day!

今回の記事には全く関係ありませんが、Javaでこんなアプリも作れます。JavaFX + Gluon


Java Basic

 Eclipse セットアップ

  1. Java Install Eclipse〜開発ツールのインストール〜
  2. TensorFlow C++環境〜EclipseCDTをインストール〜
  3. Setup OpenGL with JavaJOGLを使う準備 for Eclipse
  4. Eclipse Meven 開発手順〜プロジェクトの作成〜
  5. Java OpenCV 環境セットアップ(on Mac)
  6. Eclipse SceneBuilderを追加する
  7. JavaFX SceneBuilder EclipseSceneBuilder連携~

プチコン ゲームの組み立て方

イントロダクション

前提として、作り方は人それぞれです。ですが、サンプルとして自分のやり方を記載したいと思います。

Introduction

As a premise, there is many way to make a game. but I will write how to make a game of mine

用意するもの

1. アイデア(イメージ)
2. 開発環境(プチコン)
3.ノートと鉛筆
4. Webに接続するもの
5. やる気と根性

Prepare

1. Idea(image about the game)
2. IDE(プチコン)
3.Note book and pen
4. something to browse
5. Motivation and Fire of spirit called "Konjo"

作成手順

A. どの様にゲームを進めるかノートに書く
B. 必要なリソースの作成(マップやキャラ、アイテムetc)
C. ノートに書いた様に動かすためのプログラムを書く

Procedure of create

A. Write to note. how to play the game
B. Create a resources for charactor, map and items. etc...
C. create a program what do play you wrote.

プログラムを書く

画面上でプレイするゲームである以上、以下のフローの中でプログラムを動かす事になるハズです。(他の方法もあるかも?)

・初期処理(リソース読み込み)→画面表示→入力を受ける→データの更新→表示の更新→入力を受ける

Write a Program

It seems we create program fllow like this.

・init(read resources) → view screen → get input → update data →update screen → get input ...

プログラムの処理

・初期処理
・ループ(ゲームループとか言う)
・終了処理(リソースの解放など)

注意として先ほど記載した順序と違うように見えると思います。が、画面表示から先は(赤字の部分)ゲームループの中で実行します。

プチコン=SmileBasic的に書くと以下の様になります。

Processing of program

・initialize
・game loop
・terminate(clear resources)

Caution: this process looks like different to  I wrote. but it OK cause after view screen to get input(red color)

【各サブルーチン】
DEF サブルーチン名(sub routing name)
処理(process)
END

'*** 背景の描画 ****
'使用する座標(axis)
DIM START_X=20
DIM START_Y=20
DIM END_X=170
DIM END_Y=170
' 初期処理
'<初期処理の例>
'緑色の四角を背景として表示
GFILL START_X, START_Y, END_X,END_Y,RGB(0,192,0)
'斜めに黒い線を引く(バッテンにする)
GLINE START_X, START_Y, END_X, END_Y, RGB(0,0,0)
GLINE START_X, END_Y, END_X, START_Y, RGB(0,0,0)

'ゲームループ
@LOOP
B=BUTTON()
IF B==#A THEN GOTO @A_PUSH
GOTO @LOOP

'Aボタンを押した時の処理
@A_PUSH
PRINT "HELLO"
GOTO @LOOP

サンプルとして作成しましたので、動くかわかりません。。。

その代わり、サンプルで作成した「碁盤」を表示するプログラムを作成しましたのでそちらをダウンロードして見てみてください。

公開キーは「RRTEE23V」です。

3DSでのダウンロードの仕方はこちらを参照してください。

I do not know move This sample code . but you can download my sample code using nintendo 3ds. see this page

でわでわ。。。
See you next time...



プチコン 実装メモ〜プチコンcommand memo〜

イントロダクション

プチコンを使用して、色々と覚えたので忘れる前にもメモします。

Introduction

i used "プチコン". And write a memo to blog about how to make program

覚えたこと

DIM 変数名=XXX で文字列を使用するときは「変数$」のように使用できる。

DEF M=“AAA”

PRINT “テスト"+M$

USE スロット番号 で別スロットを参照することができる、ただし関数を呼び出すときには「COMMON DEF XXX」のようにサブルーチンを作成する必要がある。

<slot 0>

USE 1

XXX

<slot 1>

COMMON DEF XXX

Remenber

DIM "Valiable"=XXX when you use String, you have to use Valiable like this "Valiable"$

USE "slot No" you can use other slot, and you have to definition like this "COMMON DEF XXX". then you can call sub XXX on current slot. see <slot 0> and <slot 1>

こんな画面です。USEは使ってません。

it is sample. do not use “USE”