- 分からないときはすぐに担当のb3に聞く
- 分からないことは次に持ち越さないこと
- 予習/復習は必ず行うこと。
- 前回までの知識は全て習得しているものとして進行します
- 課題はGithub上にpushすること
- Githubの使い方を学びます
- 課題の質問をするときなどにGithub上にあげておくと確認しやすいです
- 時間外の質問/相談はSlackまたはZoomで
- Zoomで聞いた方がいいこともあります
- 解答は確認程度に
- 課題の解答がありますが、あくまで参考程度としコピペは極力しない。
- 連絡はこまめに
- 既読通知機能がSlackにはないので...
- メンションを付けて送信すると、相手に通知されますが緊急時以外は極力避けましょう。
以下はGithubアカウントがあることを想定して進めます
- Windowsの人はGitBashのダウンロード Macの人はターミナルで git config でユーザ登録を行なっていない人は以下のコマンドから登録する
$ cd
$ git config --global user.name [GitHubに登録したユーザ名]
$ git config --global user.email [GitHubに登録したメールアドレス]
現在の登録を確認するコマンド
$ git config --global --list
-
Githubにアクセスし、サインインする
-
Github上にリモートリポジトリを作成する
-
ローカルリポジトリの作成 以下はWindowsの人はGitBash、Macの人はターミナルで操作する
- リポジトリを作成するディレクトリを作成する
【Mac例】 MacintoshHD>ユーザ>ユーザ名>デスクトップ にディレクトリを作成する場合
$ cd $ cd Desktop $ mkdir Prmn2022a $ cd Prmn2022a【Windows例】 Windows(C:)>Users>ユーザ名 にディレクトリを作成する場合
$ cd $ cd c: $ cd Users $ cd ユーザ名 $ mkdir Prmn2022a $ cd Prmn2022a先にファイルをファイルを作成する方法もある
ローカルリポジトリを作成したいところで新規ファイルを保存してパスのコピーを行い、cdコマンドの後ろにつける
$ cd ファイルのパス- Githubの画面に戻り、表示されているコマンドを順番に進める
$ echo "# Prmn2022a" >> README.md $ git init $ git add README.md $ git commit -m "first commit" $ git branch -M main $ git remote add origin 各々のGitHubのリンク $ git push -u origin main -
Githubのリポジトリ上にREADE.mdというファイルが上がっていることを確認する
-
Githubにpushを行うローカルリポジトリを作成したディレクトリ下に ”prmn2022a” フォルダを作る
-
IntelliJを起動後、Create New Project を選択する
-
左側のメニューから Java を選択
-
上部の Project SDK で 11 (この数字は異なるかも) を選択し、Nextを押す
-
もう一度Nextを押す
-
Project locationに ”prmn2022a” フォルダへのパスを入れる
-
Finishを押す
- 左側のメニューの “prmn2022a” を開く
- ”src” フォルダを右クリックし、New > Packageを選択
- package nameには、”lecture01”と記入しOKを押す
今後特に指示が無い場合は ”lectureXX” の形式で作成する。
例: 第3回講義では、 prmn2022a/lecture03/
- IntelliJのターミナルを開く
- 現在いる場所がプロジェクトになっていることを確認する
- 以下のコマンドを入力する
$ git add .
$ git commit -m "Github上に表示するコメント文(例:プロジェクト作成)"
$ git push origin main
Githubのリポジトリを更新して、プロジェクがpush出来ていたらOK
GitBashやターミナルでも同じコマンドでpushを行えるが、ディレクトリをプロジェクトまで移動するのを忘れないように pushはできるだけ細かく行い、コメント文は簡潔に(パッケージ・クラス・メソッドを作ったときなど)
- 左側のメニューのsrc > lecture01を 右クリックする
- New > Java Class を選択する
- Nameには "Main" と記入しOKを押す
今後クラス作成をするときは、各lectureXXパッケージ内に作成すること
-
Mainクラスの {} の中にカーソルを合わせる
-
psvmとタイプしTabキーを押す- 生成されたコード部分
public static void main (String[] args){ //本来ならここに処理を書く //スラッシュを2つ打つと、コメント文として認識される。 //コードの可読性の向上につながるので、書く癖をつけよう //行を選択して「ctrl+/ (command+/)」で選択行をコメント文に変更できる(複数行可) }をmainメソッドと呼ぶ。
-
コード入力スペース上で右クリックをする
-
Run ‘Main.main()’ をクリック
画面下部に Process finished with exit code 0 と表示されることを確認する
System.out.println(String str)
この関数を用いることで標準出力に改行付きで文字列を表示させる事ができる
(soutでショートカット入力することもできる)
引用strには、"(Shift + 2キー)で囲った文字列を渡す
例:
System.out.println("We are Project Member.");
//コンソールに、We are Project Member と表示されるはず演算記号 +, -, *, /, % を用いることで四則演算ができる
例:
int sum = 5 + 3; //sumには8が入る
int sub = 5 - 3; //subには2が入る
int mul = 5 * 3; //mulには15が入る
int div = 5 / 3; //divには1が入る(小数点以下は切り捨て)
int mod = 5 % 3; //modには2が入る(余りの導出)Javaでは+演算子を用いることで文字列(もしくは数値を文字列へ変換したもの)を連結する事ができる
+演算子は連結部分に用いる
例:
double temp = 18.7;
System.out.println("The temperature is " + temp + " degrees"); //"The tempareture is 18.7 degrees"と表示処理を分岐させたい場合には if, else if, else を用いる
if(条件式1) {
/* 条件式1がtrueの時実行 */
}
else if(条件分岐2) {
/* 条件式1がfalseかつ条件式2がtrueの時実行 */
}
else {
/* 条件式1も2もfalseだった時実行 */
}比較には以下の記号を用いる
==(等値), !=(等値でない), >, >=, <, <=, &&(かつ),
||(または), !(条件を逆にする=falseの時に実行されるようにする) , ....
Javaにおいて配列を定義するには以下のように記述する
型名[] 変数名 = new 型名[要素数];
例:
int[] array = new int[10]; //int型の配列を10要素分確保
アクセスするには以下のように記述する
array[4] = 3; //arrayの5番目に3を代入する宣言と同時に代入する場合には以下のような記述も可能である
int[] array={ 1,2,3,4 };
//以下と同じ
int[] array = new int[4];
array[0] = 1;
array[1] = 2;
array[2] = 3;
array[3] = 4;指定回数同じ処理をさせる場合にはfor文を用いる
for(初期化式; 条件式; 変動値) {
/*条件式が真の繰り返しを処理する内容*/
}例:
for(int i = 0; i < 10; i++){
/* 処理が終わるたびにiが+1され, i<10でなくなった時にfor文を抜ける */
}繰り返し処理をする回数が定かでない場合にwhile文を用いる
while(条件式) {
/* 条件式が真の間繰り返される */
}例:
int count = 0;
while(count < 100) {
count++; //count=100になると抜ける
}条件式により処理を複数分岐にしたい場合,それぞれの条件が独立している場合にswitch文を使う事ができる
switch(分岐の処理である変数){
case 条件1:
/*処理内容*/
break;
case 条件2:
/*処理内容*/
break;
・・・
default:
/*上記に当てはまらなかったときの処理*/
break;
}例:
String series = "XS"; //Java SE 7より文字列のswitchが可能に
switch(series){
case "X": //文字列の場合条件の""を忘れないように
System.out.println("Face IDに対応");
break;
case "11":
System.out.println("Dolby Atmosに対応");
break;
case "11 pro":
System.out.println("タピオカメラ");
break;
case "SE":
System.out.println("8の上位互換");
break;
default:
System.out.println("古き良き時代");
break;
}各ケースの末尾のbreakは忘れずに記述する
記述しなくてもエラーとはならないが、大抵が記述者の意図と異なる挙動となる
breakを書かない場合は下のcaseの処理内でbreakされるもしくはswitchのスコープから出るまで次々に行う
これをFall throughという
処理を分割する際に用いるメソッドは以下のように記述する
[修飾子] [戻り値の型] [メソッド名](引数1,引数2,...){
/*処理内容*/
}
- 修飾子については後の講義で解説する。
- mainメソッド内で使いたいメソッドには、以下のprintメソッドのようにstatic修飾子を付ける。
- 付けない場合コンパイルエラーが発生するため注意
例:
public class Main {
public static void main(String[] args) {
print("Project Member");
}
static void print(String str) {
//引数に与えられた文字列を表示するprintメソッド
System.out.println(str);
}
}- Javaは専用の動作環境であるJava仮想マシン(JVM : Java Virtual Machine)がプログラムを実行する
- JVM用実行コード(バイトコード)にし、JVMがOSや実行状況に最適な形でバイトコードを処理する
- JVMの環境は共通なので、どのOSでも全く同じバイトコードが動作する(クロスプラットフォーム)
- また、JVMがメモリの利用・管理も自動で行う(ガーベージコレクション)
System.out.println()関数を用いて自分の情報を表示させる
実行結果:B21xxxxx Tomoko Fujii
int型変数studentNumberに学籍番号の数値の部分を代入し、自分の情報を表示させる
ただし,studentNumberを文字列連結させて表示させること
実行結果:B21xxxxx Tomoko Fujii
int型変数ageに任意の値を代入し、ageの値によって処理を分岐させ、実行結果のようになるようにしなさい
また、文字列連結を用いて、ageを使って年齢を表示させること
実行結果:
// ageが20未満の時
I am XX years old so I cannot drink liquor. //XXにageを表示
// ageが20以上の時
I am XX years old so I can drink liquor. //XXにageを表示
要素数100のint型の配列arrayを用意する。
それぞれに要素番号+1の値を代入していくことにする。 (0番目の要素には、「1」が入るように)
配列arrayの数値を用いて配列番号が偶数の値の総和を求めよ。
ただし、代入処理及び総和を求める処理には繰り返し文を用いて、総和をint型変数sumに代入して結果を出すこと
for, whileのどちらの繰り返し文を用いるかは各自考え。
なぜその繰り返し分を記述したのかの理由を答えよ。
小松川高校の1年生は5人います。
1年生全員を対象として算数のテストを行い,成績をつけることになりました.
int型の1次元配列(テストの点数表)を引数にとる関数min(), max(), average()を作成し、各クラスのそれぞれの最低点をint型,最高点をint型,平均点をdouble型で返すようにせよ.
また、条件分岐を用いて60点未満を不可、60~70点未満を可、70~80点未満を良、80~90点未満を優、90~100点を秀とし表示例のように表示せよ。
※テストの点数表はこちらが用意するものを用いること
表示例:
0番 41点 不可
1番 85点 優
.....
最高点:85点
最低点:38点
平均点 63.2点
.....
Githubにcommit/pushする
以下のコードを適切な箇所に挿入してください
int[] score = {41,85,72,38,80};









