ProKaseifu の回答履歴

全450件中81~100件表示
  • JavaにはなぜGO TO 命令がないのでしょうか?

    皆さん教えて下さい。私は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 の後ろにピリオドがあります。 ------------------------------------------------------------------------------------

    • ベストアンサー
    • buri5000
    • Java
    • 回答数19
  • VB.net 変数を動的にできませんか?

    わかる方ならすぐに回答いただけるものなのかもしれませんが 初心者でよろしくお願いします。 ActiveReportを使って帳票を作成しています。 質問自体は直接的に関係がないかもしれません。 ---------------------------------------- Dim report01 As New rptList() Dim report02 As New rptList() Dim report03 As New rptList() 'レコードがあれば印刷 If xxx.Count <> 0 Then report01.Run() End If If xxx.Count <> 0 Then report02.Run() End If If xxx.Count <> 0 Then report03.Run() End If 'ドキュメントマージ report01.Document.Pages.AddRange(report02.Document.Pages) report01.Document.Pages.AddRange(report03.Document.Pages) p.Export(report01.Document, m_stream) ---------------------------------------- データがあったものだけを印刷し、 最終的にマージして1つの帳票として出すのですが、 「データがあったとき」だけなので 最後のマージの部分のマージ元になる帳票名と (今はreport01です) あと追加する帳票が動的に変化してしまいます。 これを解決するためにはどうしたらよろしいでしょうか? やることは簡単なのにできない自分がいます。 よろしくお願いします。

  • JavaにはなぜGO TO 命令がないのでしょうか?

    皆さん教えて下さい。私は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 の後ろにピリオドがあります。 ------------------------------------------------------------------------------------

    • ベストアンサー
    • buri5000
    • Java
    • 回答数19
  • Validatorでできることとできないこと

    Java初心者です。 Validatorでできること、できないことがよくわかりません。 「Serverへの通信なしでチェックできることはできる」というような理解でよいのでしょうか。 たとえば、「マスター情報に登録されているも」というようなものも、マスター情報を事前に取得しておけばValidatorでチェック可能なのでしょうか? できること、できないこと。あるいは、作法的にやっていいこと、だめなことをわかりやすく(例などで)教えていただけませんでしょうか。

  • NetBeansでのJButtonの配列化

    NetBeansを使ってGUIプログラミングを行っているのですが、パレットからJButtonを選んでパネルにいくつか配置したのですが、それらを一つの配列で作成することはできるのでしょうか? 現在、カレンダの作成をボタンで行っていて二元配列が作成できないと難しいのでよろしくお願いします。

  • DBを扱う上でのclose()メソッドの必要性

    JavaでDBにアクセスする為の勉強中です。 使用しているクラスは Connection、Statement、ResultSet でそれぞれfinallyの部分でclose()メソッドを呼んでいます 例えばこのときStatementのJavaDocでclose()メソッドの説明を読むと >自動的にクローズされるときに Statement オブジェクトのデータベースと JDBC リソースが解放されるのを待つのではなく、ただちにそれらを解放します。 とあり、該当のメソッドを呼ばなくても、リソースは解放されるようですが、ただちに解放する必要性はどこにあるのでしょうか? 検索結果で表示されるサイト等も大半はclose()が書かれていますが、 おまじない的な話しか載ってるのを見る程度でした。

    • 締切済み
    • noname#86743
    • Java
    • 回答数1
  • sin曲線とcos曲線を描くプログラムについて

    お世話になります。 Javaのプログラミングを習い始めたものです。 標記の件ですが、プログラムを見てもどうしてそうなるかが さっぱりわからない部分があります。 import java.awt.*; import java.applet.*; public class Example2 extends Applet{ public void paint(Graphics g){ // 座標軸を描く g.drawLine(20, 10, 20, 130); g.drawLine(20, 70, 230, 70); // sinカーブを描く(20->220) g.setColor( Color.blue); int x0, y0, x1, y1; x1 = 20; y1 = 70; for (int i = 1; i <= 20; i++){ x0 = x1; y0 = y1; x1 = 20+(int)(i/20.0*200); y1 = 70-(int)(50.0*Math.sin(i/20.0*2*Math.PI)); g.drawLine(x0, y0, x1, y1); } // cosカーブを描く(20->220) g.setColor( Color.red); x1 = 20; y1 = 20; for (int i = 1; i <= 20; i++){ x0 = x1; y0 = y1; x1 = 20+(int)(i/20.0*200); y1 = 70-(int)(50.0*Math.cos(i/20.0*2*Math.PI)); g.drawLine(x0, y0, x1, y1); } } これで、赤と青の曲線が描かれるわけですが、 x1 = 20+(int)(i/20.0*200); y1 = 70-(int)(50.0*Math.sin(i/20.0*2*Math.PI)); の部分がさっぱりわかりません。 今まで、"int"は変数宣言でしか用いられなかったのに、 今回突然この式の中に組み込まれており困惑しています。 また、iが回数を表すのはわかりますが、それを全回数で割ったり、 x1の式の中でなぜ200を掛けるのか、 y1の式の中でなぜ2を掛け、さらに円周率まで掛けるのかが どうしても理解できません。 どなたか、ご教授願えませんでしょうか。 あるいは、参考になるサイトを教えていただければ助かります。 どうぞよろしくお願いいたします。

    • ベストアンサー
    • w_dragon
    • Java
    • 回答数2
  • sin曲線とcos曲線を描くプログラムについて

    お世話になります。 Javaのプログラミングを習い始めたものです。 標記の件ですが、プログラムを見てもどうしてそうなるかが さっぱりわからない部分があります。 import java.awt.*; import java.applet.*; public class Example2 extends Applet{ public void paint(Graphics g){ // 座標軸を描く g.drawLine(20, 10, 20, 130); g.drawLine(20, 70, 230, 70); // sinカーブを描く(20->220) g.setColor( Color.blue); int x0, y0, x1, y1; x1 = 20; y1 = 70; for (int i = 1; i <= 20; i++){ x0 = x1; y0 = y1; x1 = 20+(int)(i/20.0*200); y1 = 70-(int)(50.0*Math.sin(i/20.0*2*Math.PI)); g.drawLine(x0, y0, x1, y1); } // cosカーブを描く(20->220) g.setColor( Color.red); x1 = 20; y1 = 20; for (int i = 1; i <= 20; i++){ x0 = x1; y0 = y1; x1 = 20+(int)(i/20.0*200); y1 = 70-(int)(50.0*Math.cos(i/20.0*2*Math.PI)); g.drawLine(x0, y0, x1, y1); } } これで、赤と青の曲線が描かれるわけですが、 x1 = 20+(int)(i/20.0*200); y1 = 70-(int)(50.0*Math.sin(i/20.0*2*Math.PI)); の部分がさっぱりわかりません。 今まで、"int"は変数宣言でしか用いられなかったのに、 今回突然この式の中に組み込まれており困惑しています。 また、iが回数を表すのはわかりますが、それを全回数で割ったり、 x1の式の中でなぜ200を掛けるのか、 y1の式の中でなぜ2を掛け、さらに円周率まで掛けるのかが どうしても理解できません。 どなたか、ご教授願えませんでしょうか。 あるいは、参考になるサイトを教えていただければ助かります。 どうぞよろしくお願いいたします。

    • ベストアンサー
    • w_dragon
    • Java
    • 回答数2
  • ソートについて

    array listをソートしたいのですが、複数のarray listをひとつのarray listを基準として、並び変えることは可能ですか? たとえば、1つが生徒の名前のarray listで、もう1つが成績のarray listだとしたら、名前のarray lisをあいうえお順にソートし、成績を成績順ではなく、名前に対応するように並びかえたいのです。 なにか方法があったらよろしくお願いします。

  • vb2005でmdbを読み込みmdbに書き出したい

    よろしくお願いします。windowsxp,access2003,vb2005express エディションを使用して、現在、勉強中です。 早速質問ですが、ADO・NETを使ってA_MDBをvb2005に読み込んで,その内容をB_MDBに書き込みたいのですがその方法が分かりません 例えば、A_MDBのA_TABLEには単価と数量が有ります。仮に10レコードがあるとします、このA_TABLEを読み込んで、単価と数量を 掛けて金額を計算し、B_MDBのB_TABLEに単価、数量、金額の各項目を書き込むという感じです。A,B両MDBは作成済です。あまり上手く 表現できませんがよろしくお願いいたします。

  • 自作ウィンドウを閉じる方法について

    只今、これならわかるJAVAという書籍でウィンドウを生成し、×ボタンがクリックされたら、ウィンドウを閉じる(プログラムを終了する)ようなプログラムを作っているのですが、書籍通りに記述しているのですが、×ボタンをクリックしてもウィンドウが閉じません。ソースは、 import java.awt.*; import java.awt.event.*; //ウィンドウを表すクラスFrameを継承し、自作のウィンドウを表すクラスを作成する public class EventDispose extends Frame{ public EventDispose() { addWindowListener(new MyWindowAdapter()); } class MyWindowAdapter extends WindowAdapter{ public void WindowClosing(WindowEvent e) { System.exit(0); } } } です、。表示を行っているクラスが、 public class MyWinApp { public static void main(String[] args) { //自作のウィンドウの生成(コンストラクタの実行) EventDispose ed = new EventDispose(); //ウィンドウのサイズの指定 ed.setSize(300,200); //生成したウィンドウを可視状態にする ed.setVisible(true); } } です。開発環境はeclipseの3.4です。 どうかご教授よろしくお願い致します。

    • ベストアンサー
    • dfjews
    • Java
    • 回答数1
  • NOT演算

    ~=NOT演算 Javaプログラムで 44をNOT演算で実行すると-45 という結果が得られますが、なぜそのようになるのかがわかりませんので教えてください。

    • 締切済み
    • noname#105606
    • Java
    • 回答数4
  • NOT演算

    ~=NOT演算 Javaプログラムで 44をNOT演算で実行すると-45 という結果が得られますが、なぜそのようになるのかがわかりませんので教えてください。

    • 締切済み
    • noname#105606
    • Java
    • 回答数4
  • クラスパス配下のファイル名一覧取得

    ある、クラスパスの通ったフォルダ(仮にdir)があったとして そのフォルダ内にあるファイル名一覧を取得したいと考えております。 dir/ ->a.txt ->b.txt ->c.txt 結果:a.txt、b.txt、c.txt ClassLoader クラスなどを用いて取得しようと考えたのですが、 getSystemResource() メソッドなどはファイル名まで指定しないと 取得できないみたいで、現時点で望む処理ができない状態です。 フォルダまでの絶対パスの指定はしたくないため、 Fileクラスも使用できない状態です。 このような処理をやったことがある方は、 どうかご教授お願いいたします。

  • Eclipseの変換候補の使い方

    EclipseでJavaを使って、勉強を始めようと思っているのですが変換候補(?)の使い方に戸惑っています。 ソースコードで順を追って説明させてもらうと、 public class Hallo { public static void main(String[] args) { // TODO 自動生成されたメソッド・スタブ System.out.println("hallo");//4行目 int abc = 5;//5行目 System.out.println(abc);//6行目 } } この様なソースを最終的に打ちたいとします。 まず4行目(他の部分は自動的に作成されています)をうちたいので、 Sとうったんですが、この時点では候補は何も出てこなかったのですが ここでなんとか「System、S・・・・」みたいな候補を出す方法はないでしょうか? また6行目でprintlnの中に変数abcを書こうと、aとうった時点でabcみたいな変数名の候補を表示させる方法はないものでしょうか? もしあるなら方法を教えてください。よろしくおねがいします。

    • ベストアンサー
    • lain_003
    • Java
    • 回答数3
  • VBの2008 Express Edition について

    VBの2008 Express Editionと製品版の大きな違いを教えて下さい。 気になる点は Framework 、コントロール 、  セキュリティリスク、リバースエンジニアリング、制作したプログラムの配布(無償、有償)、 ExpressEditionの最新版でVisualStudio2010はどう対応される予定なのか、 です。

  • Integerで変換する前に、0~9までの数字か判別したいです。

    /* Integerで変換する前に、0~9までの数字かどうか判別したいです。 入力した文字が'0'~'9'までの文字かどうか判別し、 trueなら、int len = Integer.parseInt(line) で変換し、 lenが1~10までの数値かどうか判別し、trueならwhileを抜ける それ以外は、もう一度入力するプログラムなのですか、 うまく作れなくて困ってます。 コンパイルはできましたが、入力時に入力が入らない現象がおきました。Ctrl + C では戻れます。 ここのプログラムが間違っているのですが、 if (line.length() != 0 && '0' >= line.charAt(i) && line.charAt(i) <= '9') { 何かいい方法はありませんか? */ import java.io.*; public class Kazuate { public static void main(String[] args) throws IOException { BufferedReader reader = new BufferedReader(new InputStreamReader(System.in)); // 宣言 StringBuffer sb = new StringBuffer(); String line = null; // 桁数を入力 System.out.print("1~10までの値: "); while (true) { for (int i = 0; i < len; i++) { line = reader.readLine(); if (line.length() != 0 && '0' >= line.charAt(i) && line.charAt(i) <= '9'){ int len = Integer.parseInt(line); if (Integer.parseInt(line) >= 0 && Integer.parseInt(line) <= 10) { break; } } System.out.print("入力が間違っています。もう一度を入力して下さい。\n" + "桁数(1~10までの値): "); continue; } break; } } System.out.print("入力した値は" + len + "です。"); } }

  • Integerで変換する前に、0~9までの数字か判別したいです。

    /* Integerで変換する前に、0~9までの数字かどうか判別したいです。 入力した文字が'0'~'9'までの文字かどうか判別し、 trueなら、int len = Integer.parseInt(line) で変換し、 lenが1~10までの数値かどうか判別し、trueならwhileを抜ける それ以外は、もう一度入力するプログラムなのですか、 うまく作れなくて困ってます。 コンパイルはできましたが、入力時に入力が入らない現象がおきました。Ctrl + C では戻れます。 ここのプログラムが間違っているのですが、 if (line.length() != 0 && '0' >= line.charAt(i) && line.charAt(i) <= '9') { 何かいい方法はありませんか? */ import java.io.*; public class Kazuate { public static void main(String[] args) throws IOException { BufferedReader reader = new BufferedReader(new InputStreamReader(System.in)); // 宣言 StringBuffer sb = new StringBuffer(); String line = null; // 桁数を入力 System.out.print("1~10までの値: "); while (true) { for (int i = 0; i < len; i++) { line = reader.readLine(); if (line.length() != 0 && '0' >= line.charAt(i) && line.charAt(i) <= '9'){ int len = Integer.parseInt(line); if (Integer.parseInt(line) >= 0 && Integer.parseInt(line) <= 10) { break; } } System.out.print("入力が間違っています。もう一度を入力して下さい。\n" + "桁数(1~10までの値): "); continue; } break; } } System.out.print("入力した値は" + len + "です。"); } }

  • 九九

    九九の表を作成するプログラムを作成して下さい。 ------------------------------------- 1 2 3 4 5 6 7 8 9 2 4 6 8 10 12 14 16 18 3 6 9 12 15 18 21 24 27 4 8 12 16 20 24 28 32 36 5 10 15 20 25 30 35 40 45 6 12 18 24 30 36 42 48 54 7 14 21 28 35 42 49 54 63 8 16 24 32 40 48 56 64 72 9 18 27 36 45 54 63 72 81 ------------------------------------- 宜しくお願いします。

    • 締切済み
    • noname#105606
    • Java
    • 回答数2
  • オススメなitスクールを教えてください。

    今現在javaを習うためITスクールに通うかどうか迷っています。 どなたか都内のITスクールでオススメの学校などありましたら、教えていただけませんか。 お願いいたします。

    • ベストアンサー
    • lower123
    • Java
    • 回答数4