
2012年01月06日 22時52分
皆さん教えて下さい。私はCOBOLを長年手がけ、最近Javaを勉強している者です。
JavaにはなぜGO TO 命令がないのでしょうか?
IF ネストというのは、わかりにくく、私は昔から嫌っておりました。
ところがJavaにはGO TO 命令が無いため、いやでもIF ネストを使わねばならないようです。
それともわかりやすく効率的なコーディングが別にあるのでしょうか??
3択の問題で、下記AはJavaの教科書的コーディングです。3択だからまだしも複雑になると、IFネストはわかりにくいと私は思います。
下記Bはわかりやすいですが、無駄な処理が発生し、良くないコーディング例です。
下記CはCOBOLコ-ディングで、GO TOが使えるため、人間が読んでわかりやすく、処理効率もいいです。
●この点Javaをやっている皆さんどうお考えですか???
------------------------------------------------------------------------------------
A<教科書的サンプル>
if(a > 0){System.out.println("aは正の値です。");
}else if(a == 0){System.out.println("aはゼロです。");
}else{System.out.println("aは負の値です。");
}
------------------------------------------------------------------------------------
B<if ネストを嫌った サンプル>
if(a > 0){System.out.println("aは正の値です。");}
if(a == 0){System.out.println("aはゼロです。");}
if (a < 0){System.out.println("aは負の値です。");}
処理効率悪く、良くないプログラム例
------------------------------------------------------------------------------------
C<COBOL なら>
IF a > 0 DISPLAY "aは正の値です。"
GO TO OWARI.
IF a = 0 DISPLAY " aはゼロです。"
GO TO OWARI.
IF a < 0 DISPLAY " aは負の値です。" .
OWARI.
.
GO TO 命令がある故に効率的
IF 構文の終わりと、OWARI の後ろにピリオドがあります。
------------------------------------------------------------------------------------
2012年01月06日 23時20分
Java初心者です。勉強のためにJavaを使ったアプリケーションの開発をしています。DBから取得した日本語文字列が文字化けしてしまうので、アドバイスを頂きたいです。
【環境】
Win XP Pro SP2
Eclipse 3.4.2
tomcat 6.0
JDK 1.6.0_14
Struts 1.3.10
Access 2000
上記の環境で簡単なログインページを作成しています。IDとパスワードを入力して、DB認証がOKならユーザ名称を取得してメニュー画面に遷移し、取得したユーザ名称を表示するという仕様です。 デバッグして追っていくと、以下のことが分かりました。
(1)ログイン画面で入力したID・パスワードは正しくサーブレットに渡っている
(2)SQLを発行してDBよりデータを取得する段階で文字化けが発生している
(2)でデータを取得する時に、HashMapのgetメソッドを使っています。文字化けしたデータは ???????G となってしまっています。DB(Access)からUnicodeへのエンコードがうまくいっていないのでしょうか?恥ずかしながらDB(Access)の文字コードの調べ方が分かりません。
※ドライバはsun.jdbc.odbc.JdbcOdbcDriverを使用しています。
【Login_Anken_Business.java】
public class Login_Anken_Business extends BaseBusiness {
public String getLoginUserName(String userid, String password) {
StringBuilder sbQuery = new StringBuilder();
sbQuery.append("SELECT");
sbQuery.append(" m04_name_user ");
sbQuery.append("FROM");
sbQuery.append(" M04_USER ");
sbQuery.append("WHERE");
sbQuery.append(" m04_id_user = '");
sbQuery.append(userid);
sbQuery.append("' ");
sbQuery.append("AND");
sbQuery.append(" m04_txt_password = '");
sbQuery.append(password);
sbQuery.append("' ");
HashMap<String, String> result = selectOneRecord(sbQuery.toString());
if (result == null) {
return null;
} else {
return result.get("m04_name_user"); → ここで文字化け発生
}
}
}
2012年01月06日 22時26分
いま、C++言語の学習中です。
次はJavaかなぁと思っている今日この頃。。。
Javaのプログラムはコマンドプロンプトでコンパイルできるのは経験済みです(超初歩ですが・・『こんにちは』と表示させたりです)
コマンドプロンプトはちょっと使い勝手が悪いので・・
コマンドプロンプト以外でJavaをコンパイルするフリーソフトはありますか??
できれば、使い方が載っているホームページがある方がよいのですが。。
Visual studio でもいいのですが英語版で・・・使いにくいかなぁと思っており、Javaでアプリを作成するくらいまでには成長したいとはおもっています。
C/C++ のコンパイラはCygwin とか Visual C++ を使っています。