プログラミングの作法
をテンプレートにして作成
開始行:
ここでは,プログラミングの作法について述べます.
* 意味のある変数名を付けましょう! [#hd5b3ac0]
プログラミングを始めたばかりのときには,適当に変数名を付...
プログラム言語としては,コンパイルエラーにならない限りは...
しかし,プログラムは,人が見ること(見てもらうこと)もあ...
デバッグなどのプログラムの不具合をさがすときに,問題発見...
会社などでは,一人でプログラムを書くことはめったになく,...
私が,これまで見た中で,一番びっくりしたのは,自分の好き...
コメントを見るまでは,本人に聞くまでその変数が何の役目を...
命名規則はいろいろあり,会社などでも決まっている場合もあ...
下記はJava言語の命名規則がでています.
真似て名前を決めてみるのもいいとおもいます. [[Java言語の...
* インデントを付けましょう! [#a81bac80]
プログラムを書くときには,読みやすいようにインデント(字...
インデントは,簡単にいうと「{」と「}」の対応関係です.
インデントは無くても,プログラムはコンパイル出来ますし,...
しかし,プログラムは,人が見ること(見てもらうこと)もあ...
例えば,デバッグなどのプログラムの不具合をさがすときに,...
** わかりにくい例 [#qe0101f3]
public class Hello {
public static void main(String[] args) {
System.out.println("Hello");
}
}
** わかりやすい例 [#f0cb3ce1]
public class Hello {
public static void main(String[] args) {
System.out.println("Hello");
}
}
あんまりさ差が分かりませんね.
それでは,もう少し,大きなプログラムの一部を示します.
** わかりにくい例 [#c22eae0c]
public void mouseClicked(MouseEvent e) {//ボタンをクリッ...
if(myTurn == myColor) {
JButton theButton = (JButton)e.getComponent();//クリック...
String theArrayIndex = theButton.getActionCommand();//ボ...
Icon theIcon = theButton.getIcon();//theIconには,現在の...
int index = Integer.parseInt(theArrayIndex);
if(theIcon == boardIcon) {
int y = index / 8; //ボタンの基準位置
int x = index % 8;
if(judgeButton(y, x)) { //配置可である場合
//送信情報を作成する(受信時には,この送った順番にデータ...
String msg = "PLACE "+theArrayIndex+" "+myColor;
//サーバに情報を送る
out.println(msg);//送信データをバッファに書き出す
out.flush();//送信データをフラッシュ(ネットワーク上には...
repaint();//画面のオブジェクトを描画し直す
} else {
System.out.println("そこには配置できません");
}
} else if(index == 64) {
myPass++;
String msg = "PASS "+myColor;
out.println(msg);
out.flush();
repaint();
}
} else {
System.out.println("相手のターンです");
}
}
** わかりやすい例 [#qca51863]
public void mouseClicked(MouseEvent e) {//ボタンをク...
if(myTurn == myColor) {
JButton theButton = (JButton)e.getComponent()...
String theArrayIndex = theButton.getActionCom...
Icon theIcon = theButton.getIcon();//theIcon...
int index = Integer.parseInt(theArrayIndex);
if(theIcon == boardIcon) {
int y = index / 8; //ボタンの基準位置
int x = index % 8;
if(judgeButton(y, x)) { //配置可である場合
//送信情報を作成する(受信時には,こ...
String msg = "PLACE "+theArrayIndex+"...
//サーバに情報を送る
out.println(msg);//送信データをバッフ...
out.flush();//送信データをフラッシュ...
repaint();//画面のオブジェクトを描画...
} else {
System.out.println("そこには配置でき...
}
} else if(index == 64) {
myPass++;
String msg = "PASS "+myColor;
out.println(msg);
out.flush();
repaint();
}
} else {
System.out.println("相手のターンです");
}
}
この例くらいだと,どの部分がif文の範囲かが,インデントを...
インデントの付け方は,何種類かありますが,上記の例が一般...
また,タブのサイズ(空白何文字分かが,言語によって推奨?...
Javaの場合は,インデントは空白4文字分が多いようですね.
#ref(インデントの書き方.key.png,,25%)
[[Google Java Styleコーディング規約:https://kazurof.githu...
* 意味のあるコメントを書きましょう! [#w31eb7e4]
コメントは,プログラムの説明です.自分で書いたプログラム...
あるいは,見れば(読めば)わかるプログラムに,わざわざ説...
コメント文はプログラムと無関係なので,コメントが無くても...
しかし,プログラムは,人が見ること(見てもらうこと)もあ...
例えば,デバッグなどのプログラムの不具合をさがすときに,...
人が書いたプログラムはもちろん,自分が書いたプログラムで...
分からなくなります. 私自身のことですが,1998年時に書いた...
実は,コメントには,良いコメントと悪い?(役に立たない)...
** 悪いコメント?の例 [#h523333e]
System.out.println("Hello");//Helloを出力
Helloを出力しているということは,コードをみればわかります...
ただし,講義や演習などでは,教育目的で,そのようなコメン...
「絶対悪いコメント」というわけではないとは思います.
一般的には,そのコードが何をしているか(What)は不要な場...
コメントには,自分や他人へのメモ的な使い方のコメントがあ...
** コメントの例 [#b17027c6]
//●●を使うのは勝手にエンコーディグされないようにするため
通常は,別のもっと簡単な方法があるのに,わざわざこの書き...
//もし,1文字目に「っ」が含まれていたら特殊なので注意する
ぱっと見たときに意味が分からない処理をしてい場合に,この...
//なぜかこれを追加したことでうまくいった
将来の自分宛?他人宛のメモとして,残す場合の例です.
//高速化できるはず
自分の書いたコードの問題点を残しておくなど,将来的なメモ...
コメントの書き方には,明確にきまったルールはないのですが...
* 分かりやすいコードを書きましょう! [#j5b1a5e0]
プログラムは繰り返しが得意です. 繰り返し作業があったら,...
関数で纏めたりしたほうが,修正がらくになり,
不具合などの問題も減ります.
下記の2つの例は同じ結果がでますが,同じコード繰り返し書...
もし,出力の形式を[No.]ではなくて,[番号] に変更するなど...
「わかりにくい例」は4カ所の修正が必要ですが,「わかりやす...
** わかりにくい例 [#feb512bb]
class NoLoopTest {
public static void main(String[] args) {
int i = 0;
System.out.print("No.");
System.out.println(i);
i=1;
System.out.print("No.");
System.out.println(i);
i=2;
System.out.print("No.");
System.out.println(i);
i=3;
System.out.print("No.");
System.out.println(i);
i=4;
System.out.print("No.");
System.out.println(i);
}
}
** わかりやすい例 [#j9408da5]
class ForLoopTest {
public static void main(String[] args) {
for (int i=0; i<=4; i++) {
System.out.print("No.");
System.out.println(i);
}
}
}
よく言われるのが,似ようなプログラムを書く場合には, 関数...
終了行:
ここでは,プログラミングの作法について述べます.
* 意味のある変数名を付けましょう! [#hd5b3ac0]
プログラミングを始めたばかりのときには,適当に変数名を付...
プログラム言語としては,コンパイルエラーにならない限りは...
しかし,プログラムは,人が見ること(見てもらうこと)もあ...
デバッグなどのプログラムの不具合をさがすときに,問題発見...
会社などでは,一人でプログラムを書くことはめったになく,...
私が,これまで見た中で,一番びっくりしたのは,自分の好き...
コメントを見るまでは,本人に聞くまでその変数が何の役目を...
命名規則はいろいろあり,会社などでも決まっている場合もあ...
下記はJava言語の命名規則がでています.
真似て名前を決めてみるのもいいとおもいます. [[Java言語の...
* インデントを付けましょう! [#a81bac80]
プログラムを書くときには,読みやすいようにインデント(字...
インデントは,簡単にいうと「{」と「}」の対応関係です.
インデントは無くても,プログラムはコンパイル出来ますし,...
しかし,プログラムは,人が見ること(見てもらうこと)もあ...
例えば,デバッグなどのプログラムの不具合をさがすときに,...
** わかりにくい例 [#qe0101f3]
public class Hello {
public static void main(String[] args) {
System.out.println("Hello");
}
}
** わかりやすい例 [#f0cb3ce1]
public class Hello {
public static void main(String[] args) {
System.out.println("Hello");
}
}
あんまりさ差が分かりませんね.
それでは,もう少し,大きなプログラムの一部を示します.
** わかりにくい例 [#c22eae0c]
public void mouseClicked(MouseEvent e) {//ボタンをクリッ...
if(myTurn == myColor) {
JButton theButton = (JButton)e.getComponent();//クリック...
String theArrayIndex = theButton.getActionCommand();//ボ...
Icon theIcon = theButton.getIcon();//theIconには,現在の...
int index = Integer.parseInt(theArrayIndex);
if(theIcon == boardIcon) {
int y = index / 8; //ボタンの基準位置
int x = index % 8;
if(judgeButton(y, x)) { //配置可である場合
//送信情報を作成する(受信時には,この送った順番にデータ...
String msg = "PLACE "+theArrayIndex+" "+myColor;
//サーバに情報を送る
out.println(msg);//送信データをバッファに書き出す
out.flush();//送信データをフラッシュ(ネットワーク上には...
repaint();//画面のオブジェクトを描画し直す
} else {
System.out.println("そこには配置できません");
}
} else if(index == 64) {
myPass++;
String msg = "PASS "+myColor;
out.println(msg);
out.flush();
repaint();
}
} else {
System.out.println("相手のターンです");
}
}
** わかりやすい例 [#qca51863]
public void mouseClicked(MouseEvent e) {//ボタンをク...
if(myTurn == myColor) {
JButton theButton = (JButton)e.getComponent()...
String theArrayIndex = theButton.getActionCom...
Icon theIcon = theButton.getIcon();//theIcon...
int index = Integer.parseInt(theArrayIndex);
if(theIcon == boardIcon) {
int y = index / 8; //ボタンの基準位置
int x = index % 8;
if(judgeButton(y, x)) { //配置可である場合
//送信情報を作成する(受信時には,こ...
String msg = "PLACE "+theArrayIndex+"...
//サーバに情報を送る
out.println(msg);//送信データをバッフ...
out.flush();//送信データをフラッシュ...
repaint();//画面のオブジェクトを描画...
} else {
System.out.println("そこには配置でき...
}
} else if(index == 64) {
myPass++;
String msg = "PASS "+myColor;
out.println(msg);
out.flush();
repaint();
}
} else {
System.out.println("相手のターンです");
}
}
この例くらいだと,どの部分がif文の範囲かが,インデントを...
インデントの付け方は,何種類かありますが,上記の例が一般...
また,タブのサイズ(空白何文字分かが,言語によって推奨?...
Javaの場合は,インデントは空白4文字分が多いようですね.
#ref(インデントの書き方.key.png,,25%)
[[Google Java Styleコーディング規約:https://kazurof.githu...
* 意味のあるコメントを書きましょう! [#w31eb7e4]
コメントは,プログラムの説明です.自分で書いたプログラム...
あるいは,見れば(読めば)わかるプログラムに,わざわざ説...
コメント文はプログラムと無関係なので,コメントが無くても...
しかし,プログラムは,人が見ること(見てもらうこと)もあ...
例えば,デバッグなどのプログラムの不具合をさがすときに,...
人が書いたプログラムはもちろん,自分が書いたプログラムで...
分からなくなります. 私自身のことですが,1998年時に書いた...
実は,コメントには,良いコメントと悪い?(役に立たない)...
** 悪いコメント?の例 [#h523333e]
System.out.println("Hello");//Helloを出力
Helloを出力しているということは,コードをみればわかります...
ただし,講義や演習などでは,教育目的で,そのようなコメン...
「絶対悪いコメント」というわけではないとは思います.
一般的には,そのコードが何をしているか(What)は不要な場...
コメントには,自分や他人へのメモ的な使い方のコメントがあ...
** コメントの例 [#b17027c6]
//●●を使うのは勝手にエンコーディグされないようにするため
通常は,別のもっと簡単な方法があるのに,わざわざこの書き...
//もし,1文字目に「っ」が含まれていたら特殊なので注意する
ぱっと見たときに意味が分からない処理をしてい場合に,この...
//なぜかこれを追加したことでうまくいった
将来の自分宛?他人宛のメモとして,残す場合の例です.
//高速化できるはず
自分の書いたコードの問題点を残しておくなど,将来的なメモ...
コメントの書き方には,明確にきまったルールはないのですが...
* 分かりやすいコードを書きましょう! [#j5b1a5e0]
プログラムは繰り返しが得意です. 繰り返し作業があったら,...
関数で纏めたりしたほうが,修正がらくになり,
不具合などの問題も減ります.
下記の2つの例は同じ結果がでますが,同じコード繰り返し書...
もし,出力の形式を[No.]ではなくて,[番号] に変更するなど...
「わかりにくい例」は4カ所の修正が必要ですが,「わかりやす...
** わかりにくい例 [#feb512bb]
class NoLoopTest {
public static void main(String[] args) {
int i = 0;
System.out.print("No.");
System.out.println(i);
i=1;
System.out.print("No.");
System.out.println(i);
i=2;
System.out.print("No.");
System.out.println(i);
i=3;
System.out.print("No.");
System.out.println(i);
i=4;
System.out.print("No.");
System.out.println(i);
}
}
** わかりやすい例 [#j9408da5]
class ForLoopTest {
public static void main(String[] args) {
for (int i=0; i<=4; i++) {
System.out.print("No.");
System.out.println(i);
}
}
}
よく言われるのが,似ようなプログラムを書く場合には, 関数...
ページ名: