第1回 プログラムの基本
他人が読めるプログラムを書く
学習目標
Javaプログラムを書き、動かせる
他人が読めるプログラムが書ける
コンパイルし、実行できる
インデントをつけることができる
適切な名前をつけることができる
適切なコメントをつけることができる
基本的なJava文法を説明できる
変数と代入について説明できる
出力する方法について説明できる
条件分岐のしくみを説明できる
1.1 Javaプログラム
を動かしてみましょう
1.1.1 基本的な流れ
1.1.2 実際に書いてみましょう
①JDKのインストール
②エディタを開く
③ソースコードを書く
④保存する
⑤コンパイルする
⑥実行する
1.1.1 基本的な流れ
コンパイル
ソースコード
人間が書く
プログラム(Java)
実行
バイトコード
コンピュータが
実行できる命令
1.1.2 実際に書いてみましょう
①JDKのインストール
テキストを参照
②エディタを開く
テキストを参照
③ソースコードを書く
例題1-1
(Example1_1.java)
public class Example1_1 {
public static void main(String[] args) {
System.out.println("自動販売機のサービスが開始されました");
}
}
Example1_1.java
同じ名前にすること
ファイル名の拡張子は.java
classって何?
クラスとは?(第4回から詳しくやります)
Javaにおけるプログラムの単位
Javaではすべてのプログラムはクラスに書か
れます。
ファイル名とクラス名は同じにします。
クラス
プログラム
クラス
クラス
クラス
プログラム
mainって何?
main()メソッドは、Javaのプログラムのス
タート地点です。各プログラムに必ず一つ
必要です。
main
クラス
クラス
クラス
プログラム
④保存する
場所に注意してください(整理しないと後で
わからなくなります)
objprogフォルダ(ディレクトリ)を作成します。
その中に毎回のフォルダを作成します。(今回
はobjprog01)
objprog
objprog01
Example1_1.java
objprog02
…
⑤コンパイルする
1.
2.
3.
objprog01ディレクトリ objprog01
に移動します。
コンパイルコマンド
「javac Example1_1.java」
を実行します。
Example1_1.class
ファイルができれば成功。
Example1_1.java
Example1_1.class
⑥実行する
1.
2.
実行コマンド
「java Example1_1」
を実行します。
「自動販売機のサービスが開始されまし
た」メッセージが表示されれば実行完
了!
1.2 自動販売機プログラミング
1.2.1 買うことのできる商品を提示する
①商品と種類
②商品種類を番号で扱う
1.2.1 買うことの
できる商品を提示する
商品のリストを提示するプログラム
商品を売るためには、取り扱う商品を提示す
る必要がある
①商品と種類
利用者が商品を選ぶときは、商品そのも
ので選ぶわけではなく、種類で選びます
コーラB
コーラA
コーラC
コーラ
コーラCを選ぶわけではない。コーラならどれでも良い
「商品」と「商品種類」
本講座では、実際の商品のことを「商品」、
種類のことを「商品種類」と呼びます
商品
商品種類
「商品種類」の表示を行う
買える商品を提示するプログラム
=商品種類のリストを提示するプログラム
しばらくはCUIで考えます。
「コーラ」は販売中です。
「ソーダ」は販売中です。
「緑茶」は販売中です。
GUI
CUI
②商品種類を番号で扱う
簡単にするために、しばらく商品種類は番
号だけで扱うことにします
1001
1003
1002
1004
1001番は販売中です。
1002番は販売中です。
1004番は販売中です。
1.3 他人が
読めるプログラムを書く
1.3.1 人が読めるプログラムとは?
①インデントが付けられている
②変数に適切な名前が付けられている
③コメントがかかれている
1.3.2 コメントの書法
①コメントとプログラムの目的
②目的の階層構造
③コメントの種類
1.3.1 他人が読める
プログラムとは?
他人が読めないプログラム
例題1-2
(Example1_2.java)
public class Example1_2 {
public static void main(String[] args) {
System.out.println("自動販売機のサービスが開始されました
int x;
x = 1001;
System.out.println(x+ "は販売中です。");
}
}
①インデントを付ける
例題1-2改①
(Example1_2.java)
public class Example1_2 {
public static void main(String[] args) {
System.out.println("自動販売機のサービスが開始されました");
int x;
x = 1001;
System.out.println(x+ “は販売中です。”);
}
}
インデント(1) ブロック
プログラム中で{}で囲まれた部分をブロッ
クといいます
public static void main{
…
for(int i=0;i<10;i++){
…
} ブロックの中のブロック
}
ブロック
インデント(2)
ブロックの中に書かれているコードを字下
げします(Tab1つ,またはspace2つ分)
ブロックに入るごと
に一つ字下げ
します。
public static void main{
…
for(int i=0;i<10;i++){
…
}
}
②適切な名前を付ける
int x;
x = 1001;
System.out.println(x+ “は販売中です。”);
xとは、取り扱う商品種類の番号のことですから
int itemType;
itemType = 1001;
System.out.println(itemType+ “は販売中です。”);
名前付け規則
Javaで使われる基本的な名前付け規則
クラス名
最初の文字は大文字にする。
(複数の単語を繋げた変数名の場合は、各単語の
最初の文字を大文字にする。)
ex) String,StringBuffer,House,MyHouse
変数名、メソッド名
最初の文字は小文字にする。
ex) name,myName,move(),getString()
適切な名前付けを
したプログラム
例題1-2改②
(Example1_2.java)
public class Example1_2 {
public static void main(String[] args) {
System.out.println("自動販売機のサービスが開始されました");
int itemType;
itemType = 1001;
System.out.println(itemType+ “は販売中です。”);
}
}
③コメントが書かれている
コンテクストが分からない他人が読めるように
する
//取り扱う商品種類を提示するプログラム
public class Example1_2 {
public static void main(String[] args) {
System.out.println(“自動販売機のサービスが開始されました”);
int itemType;
itemType = 1001;
System.out.println(itemType+ "は販売中です。");
}
}
Javaにおける
コメントの記述方法
/*
範囲指定コメント
*/
public class Example1_2 {
public static void main(String[] args) {
//行コメント
System.out.println(“自動販売機のサービスが開始されました”);
int itemType;//行コメント
itemType = 1001;
System.out.println(itemType+ "は販売中です。");
}
}
1.3.2 コメントの書法
コメントは内容が重要!
他人に分かるコメントとは?
①コメントとプログラムの目的
コメントをつけてみよう
public class Example1_2 {
public static void main(String[] args) {
//…
System.out.println(“自動販売機のサービスが開始されました”);
//…
int itemType;
//…
itemType = 1001;
//…
System.out.println(itemType+ "は販売中です。");
}
}
まずいコメント
何故まずいのか考えてみよう!
public class Example1_2 {
public static void main(String[] args) {
//「自動販売機が開始しました」を表示する
System.out.println(“自動販売機のサービスが開始されました”);
//int型のitemType変数を定義する
int itemType;
//itemType変数に1001を代入する
itemType = 1001;
//itemTypeを表示する
System.out.println(itemType+ "は販売中です。");
}
}
プログラムの解説はいらない
//itemType変数に1001を代入する
itemType = 1001;
itemType変数に1001を代入していること
は、プログラムを見れば明らか
これでは、何故この人は1001を代入してい
るのか、他人にわからない
すべてのプログラムには意味があるはず
コメントには目的を書け!
//取扱う商品種類にコーラを追加する
itemType = 1001;
適切なコメントを書くことによって、
itemType変数に1001を代入することは、取扱う
商品種類にコーラを追加するという意味があるこ
とが分かるようになる。
ソースコードだけでは、「コーラ=1001」だという
意味を理解できない。
プログラムの「目的」を書くようにする。
コメントには目的を書け!
改めて、コメントを考えてみよう
public class Example1_2 {
public static void main(String[] args) {
//…
System.out.println(“自動販売機のサービスが開始されました”);
//…
int itemType;
//取扱う商品種類にコーラを追加する
itemType = 1001;
//…
System.out.println(itemType+ "は販売中です。");
}
}
目的が書かれたコメント
public class Example1_2 {
public static void main(String[] args) {
//自動販売機の開始を知らせる
System.out.println(“自動販売機のサービスが開始されました”);
//取扱う商品種類を保存するための変数
int itemType;
//取扱う商品種類にコーラを追加する
itemType = 1001;
//取扱う商品種類を表示する
System.out.println(itemType+ "は販売中です。");
}
}
②目的の階層構造
だいぶ他人にも分かるようになったが、
全体として何をやっているのか分からない
public class Example1_2 {
public static void main(String[] args) {
//自動販売機の開始を知らせる
System.out.println(“自動販売機のサービスが開始されました”);
//取扱う商品種類を保存するための変数
int itemType;
//取扱う商品種類にコーラを追加する
itemType = 1001;
//取扱う商品種類を表示する
System.out.println(itemType+ "は販売中です。");
}
}
目的の目的を考える
//商品種類を保存するための変数
int itemType;
では、何故保存しておく必要があるのか?
その目的は?
取扱う商品種類を提示するため
その目的は?
商品を買ってもらうため
(自動販売機のプログラムだから)
目的の階層構造(1)
自動販売機のプログラム(商品を買う)
をするためには
取扱う商品種類を提示する
自動販売機の開始したことを知らせる
取扱う商品種類を保存する変数を定義する
取扱う商品種類にコーラを追加する
をするためには
取扱う商品種類を表示する
目的の階層構造(2)
取扱う商品種類を保存する変数を定義する
取扱う商品種類にコーラを追加する
取り扱う商品種類を
追加するために
変数を定義している
取扱う商品種類を追加する
取り扱う商品種類を保存する変数を定義する
をするためには
取り扱う商品種類にコーラを追加する
目的の階層構造を反映する
/**
* 自動販売機のプログラム
*/
public class Example1_2 {
大目的
/**
* 取扱う商品種類を提示する
*/
public static void main(String[] args) {
中目的
//自動販売機の開始を知らせる
System.out.println(“自動販売機のサービスが開始されました”);
//取り扱う商品種類を追加する
int itemType;//取扱う商品種類を保存するための変数
itemType = 1001;//取扱う商品種類にコーラを追加する
//取扱う商品種類を表示する
System.out.println(itemType+ “は販売中です。”);
}
}
小目的
③コメントの種類
目的の階層構造が反映されたコメントを書
くための指針
(1)見出し・コメント
(2)ブロック・コメント
(3)行・コメント
(1)見出し・コメント
プログラムの一番初めに書くコメント
大目的を書く
Javaでは、class宣言の前に書く
そもそもこのプロ
グラムは何のため
に書いたのか
日付や、作成者
なども入れるとよい
/**
* 自動販売機のプログラム
*
* 平成xx年xx月xx日 作成者:○○
*/
public class Example1_2 {
…
}
××
(2)ブロック・コメント
ブロックの最初に書くコメント
ブロック全体に対する目的を書く
中目的を書く
/**
* 取扱う商品種類を提示する
*/
public static void main(String[] args) {
//自動販売機の開始を知らせる
System.out.println(“自動販売機のサービスが開始されました”);
}
ブロック
(意味のカタマリ)を表現する
/**
* 自動販売機のプログラム
*/
public class Example1_2 {
/**
* 取扱う商品種類を提示する
*/
public static void main(String[] args) {
//自動販売機の開始を知らせる
System.out.println(“自動販売機のサービスが開始されました”);
//取り扱う商品種類を追加する
int itemType;//取扱う商品種類を保存するための変数
itemType = 1001;//取扱う商品種類にコーラを追加する
//取扱う商品種類を表示する
System.out.println(itemType+ “は販売中です。”);
}
}
改行を利用して
ブロック(意味のカタマリ)
を表現する
(3)行・コメント
行の最後に書くコメント
その行に対して、小目的を書く
int itemType; //取扱う商品種類を保存するための変数
プログラムの後に書く
//取扱う商品種類を追加する
itemType01 = 1001;//コーラ
itemType02 = 1022;//ソーダ
ブロック・コメントとの
連携
練習問題
ソースコードを美しく、他人が読めるように
class Practice1_1 {
せよ public
public static void main(String args[]){
int a = 49;
int b = 73;
int c = 100;
int d = 45;
int e = 25;
double x = a + b + c + d + e;
double y = x / 5.0;
y = y * 10;
if((y % 10) >= 5){
y = y + 10;
}
int z = (int)(y / 10);
System.out.println(z);
}
}
解答例
/*
* 中間テストの成績を計算するプログラム
*/
public class Practice1_1 {
/**
* 5教科の平均を求めるプログラム
*/
public static void main(String args[]){
//各教科を保存する変数に、点数を代入する
int kokugo = 49;
//国語
int suugaku = 73;
//数学
int rika = 100;
//理科
int syakai = 45;
//社会
int eigo = 25;
//英語
//5教科の平均を求め、heikin変数に保存する
double goukei = kokugo + suugaku + rika + syakai + eigo;
double heikin = goukei / 5.0;
//平均を四捨五入し、answer変数に保存する
heikin = heikin * 10;
if((heikin % 10) >= 5){
heikin = heikin + 10;
}
int answer = (int)(heikin / 10);
//四捨五入された平均を提示する
System.out.println(answer);
}
}
1.4 たくさんの商品種類を扱う
1.4.1 変数を用意する
1.4.2 条件分岐を使う
Javaの文法-変数と代入-
Javaの文法-標準出力-
Javaの文法-条件分岐-
1.4.3 さまざまな条件式
Javaの文法-条件式-
1.4.1 変数を用意する
簡単に10個の変数として扱う方法
例題1-3
(Example1_3.java)
//取扱う商品種類を保存するための変数を定義する
int itemType01;
int itemType02;
int itemType03;
int itemType04;
int itemType05;
…
初期化する
商品種類が入っていないことを「-1」として
表現することにします
コメントに意味を書いておかないと、他人に分
からなくなりますよ
//取扱う商品種類を保存するための変数を初期化する
//入っていないことを-1として表す
itemType01 = -1;
itemType02 = -1;
itemType03 = -1;
itemType04 = -1;
…
Javaの文法①ー変数と代入ー
変数の宣言
//取扱う商品種類を保存するための変数を宣言する
int itemType;
itemType
変数への代入
//取扱う商品種類にコーラを追加する
itemType = 1001;
1001
itemType
Javaの文法①-変数と代入ー
Javaでは、宣言と代入を同時にできます。
//取扱う商品種類を保存するための変数を宣言し、コーラを追加する
int itemType = 1001;
1001
itemType
Javaの文法②ー標準出力ー
文字列を出力するには
System.out.println([文字列])
文字列リテラルは
「“」「”」で囲む
//自動販売機の開始を知らせる
System.out.println(“自動販売機のサービスが開始されました”);
変数もそのまま出力できます
System.out.println([変数])
//取扱う商品種類を表示する
System.out.println(itemType+ “は販売中です。”);
文字列とつなげる時
は、「+」でつなげる
追加と表示のプログラム
//取扱う商品種類を追加する
itemType01 = 1001;//コーラ
itemType02 = 1022;//ソーダ
itemType03 = 1033;//お茶
例題1-3
(Example1_3.java)
//取扱う商品種類を表示する
System.out.println(itemType01+"は販売中です");
System.out.println(itemType02+"は販売中です");
System.out.println(itemType03+"は販売中です");
System.out.println(itemType04+"は販売中です");
System.out.println(itemType05+"は販売中です");
例題1-3の問題点
このプログラムには問題があります
出力結果を考えてみよう!
出力結果
1000番の商品種類は現在取り扱い中です。
1001番の商品種類は現在取り扱い中です。
1002番の商品種類は現在取り扱い中です。
-1番の商品種類は現在取り扱い中です。
-1番の商品種類は現在取り扱い中です。
…
-1は表示したく
ありません。
1.4.2 条件分岐を使う
入っていないときは出力しないように修正
例題1-4
(Example1_4.java)
//取扱う商品種類を表示する
if(itemType01 == -1){//入ってない
//何もしない
}else{//入っている
System.out.println(itemType01+"は販売中です");
}
Javaの文法③-条件分岐ー
条件式
if(itemType01 == -1){
成立(true)のときはここを実行
}else{
不成立(false)のときはここを実行
}
1.4.3 さまざまな条件式
条件式を工夫することによって、
より目的に近いプログラムに
//取扱う商品種類を表示する
例題1-4
(Example1_4.java)
if(itemType01 == -1){//入ってない
//何もしない
}else{//入っている
System.out.println(itemType01+"は販売中です");
}
例題1-5
(Example1_5.java)
//取扱う商品種類を表示する
if(itemType01 != -1){//入っている
System.out.println(itemType01+"は販売中です");
}
Javaの文法④ー条件式ー(1)
int i=100;
if(i == 100)
true
boolean b=true;
if(b == true)
int i=50;
if(i == 100)
false
boolean b=true;
if(b == false)
int i=100;
if(i != 100)
boolean b=true;
if(b != false)
int i=100;
if(i > 100)
boolean b=true;
if(b)
int i=100;
if(i >= 100)
boolean b=false;
if(b)
条件式(1)答え
int i=100;
if(i == 100)
true
boolean b=true;
if(b == true)
true
int i=50;
if(i == 100)
false
boolean b=true;
if(b == false)
false
int i=100;
if(i != 100)
false
boolean b=true;
if(b != false)
true
int i=100;
if(i > 100)
false
boolean b=true;
if(b)
true
int i=100;
if(i >= 100)
true
boolean b=false;
if(b)
false
Javaの文法④ー条件式ー(2)
boolean b1=true; boolean b2 = false;
if(b1 == true && b2 == false)
boolean b1=true; boolean b2 = false;
if(b1 == true || b2 == true)
boolean b1=true; boolean b2 = false;
if(b1 && b2)
boolean b1=true; boolean b2 = false;
if(b1 || b2)
boolean b1=false; boolean b2 = false;
if(b1 || b2)
条件式(2)答え
boolean b1=true; boolean b2 = false;
if(b1 == true && b2 == false)
true
boolean b1=true; boolean b2 = false;
if(b1 == true || b2 == true)
true
boolean b1=true; boolean b2 = false;
if(b1 && b2)
false
boolean b1=true; boolean b2 = false;
if(b1 || b2)
true
boolean b1=false; boolean b2 = false;
if(b1 || b2)
false
© Copyright 2026 ExpyDoc