第2回 Javaの基礎と条件分岐 |
1 JavaとProcessing |
・Processingでのプログラミング言語仕様は Java がベースになっています - 変数の扱い、型、演算子、制御処理( if文 、for文 など)、クラス、・・・ はほぼ同じ - Processingは Java に較べて >グラフィックスや音声の利用が簡単 >アニメーションなど動きのあるプログラムを作りやすい >マウス、キーボードの処理が簡単 などの特徴がある - 実行方法はJavaと少し異なる ・ コンソールへの出力方法の違い - Javaの場合
- Processingの場合 Javaの System.out.println() および System.out.print() も使用可能だが、System.out を省略して
<注意> ・ Processingのエディタで、日本語が文字化けする人は [ファイル] --> [設定] を開き、下記の部分を変更してください。 ![]() 下の図で、上図は文字化け、下図は日本語が正しく表示されているものです ![]() |
2 Java(およびProcessing)の基礎 |
・以下は、参考書(やさしいJava)の内容に沿って基礎部分を説明しています - 大事なところを抜粋して、掲載している - 「2.3 文字と数値」の 2.3 は、Lesson2 の 2.3節 の内容(p.29から)を示している ページ数は、第6版と第7版で少しずれているかも、でも内容は同じ - Webの資料は、参考書の説明を簡潔にまとめたもの
同じ数値の節を読むこと |
3 数値、変数、演算子など |
2.3 文字と数値 |
・リテラルとは - 一定の「値」を表すために用いられる、Javaの単語のようなもの 文字リテラル、文字列リテラル、数値のリテラル ・ 文字リテラル - シングルクォーテーションで囲む 'A'、'a'、'あ' ・ エスケープシーケンス - '\'を組み合わせて表現する特殊な文字 ・ 文字コード - JavaではUnicodeを用いる ・ 文字列リテラル - ダブルクォーテーションで囲む(※Pythonではシングルクォーテーションでも可) "Hello"、"Goodbye"、"こんにちは" ・ 数値リテラル - 整数型 - 浮動小数点型 |
3.3 型 |
・型のしくみを知る - Javaの変数には多くの「型(type)」がある - Pythonの変数の型は int型、 float型、 str型、 bool型 など <Javaの変数の型> (※青色の型はよく使う)
|
3.4 変数の宣言 |
・変数を宣言する - 使用する変数は宣言する必要がある - Pythonは変数を宣言する必要はない
・値の代入についての注意 - 基本的に、宣言した型と異なる型の値を代入しない方がよい
・変数の宣言位置についての注意 - 変数を宣言する場所に気をつけること(変数のスコープ) - 下図で、左図はOKで、右図はNG。違いを確認しよう // を記述すると、それより右側はコメントとなる ![]() |
4.2 演算子の種類(教科書 p.72) |
・いろいろな演算子 - 四則演算など基本的な演算子は、Pythonと同じ ・インクリメント・デクリメント演算子 - 変数の値を1増やす、1減らす演算子 - Pythonにはない
・ インクリメント・デクリメントの前置と後置 - 「b = a++;」と「b = ++a;」は意味がことなる 「b = a++;」 b へ代入してから a を+1 「b = ++a;」 a を +1 してから b へ代入 ・代入演算子 - 代入演算子は、Pythonとほぼ同じ |
4.4 型変換 |
・大きなサイズ、小さなサイズの型に代入する - 異なる型へ値を代入する場合、明示的にキャスト(型変換)するのが望ましい - 明示的なキャストのない代入は、自動で型変換をやってくれる - 左辺の変数の型に合わせてキャストする
・異なる型どうしで演算する - 大きなサイズの型に自動的に変換して(されて)から演算する(※サイズが大きい=有効桁数が多い) - 特に、整数÷整数 の割り算に注意する(整数÷整数の計算結果は整数になるので、小数点が切り捨てられる)
※Pythonの整数(int型)同士の割り算は Python2 まで (int型)/(int型) = (int型) Python3 から (int型)/(int型) = (float型) <--型が変化する となるので、注意 Python2 3/2 = 1 <--1.5の小数点以下が切り捨てられる Python3 3/2 = 1.5 Javaは、Python2 と同様の仕様となっている |
4 条件分岐 |
5.1 関係演算子と条件 |
・条件のしくみを知る - 真:true 偽:false ・ 関係演算子を使う - 条件の設定は関係演算子を使う
|
5.2 if文 |
・if文のしくみを知る ・if文で複数の文を処理する - if文のしくみは Pythonとほぼ同じ、文法は少し異なる
・if文で複数の文を処理する - 複数の命令を実行するときは、中カッコで囲む (※Pythonはインデントの有無で制御するが、Javaはインデントは関係ない)
|
5.3 if~else文 |
・if~else文のしくみを知る - 下記のように記述する
|
5.4 複数の条件を判断する |
・if~else if~elseのしくみを知る - しくみは Python とほぼ同じだが、書式が異なる - 下記のように記述する
|
5.5 switch文 |
・switch文のしくみを知る - Python に switch 文 はありません - if~else if~else if~ が複数回つづくような場合に使用する - 整数値および1文字の、複数個の場合分けをするのに適している
- break;がないと、下へ処理が続けて行われる
朝ごはん お昼ごはん と表示される - 1文字で条件分けをする場合
|
5.6 論理演算子 |
・複雑な条件判断をする - if文の条件式を 論理積(and) や 論理和(or) で指定できる - 論理積は「&&」 、論理和は「||」 を使う
- 論理和は「||」を使う
※注意 Javaでは、以下のような書き方はできないので注意する
|
演習 |