1 名前:デフォルトの名無しさん mailto:sage [2007/05/29(火) 15:21:29 ] 過去ログ、関連スレッド、よくある質問とその回答、 質問をする前に、貴方が見なければならないサイトについての情報は、 下のwikiのページにまとめてあります。 www.wikiroom.com/java/ これからJavaでプログラミングを始めたいが、何をすればいいかわからない人も、 wikiからのリンクをおたどりください。 よくある質問 ・「コマンドまたはファイル名が違います」 「'javac' は、内部コマンドまたは外部コマンド、 操作可能なプログラムまたはバッチ ファイルとして認識されていません。」 「Exception in thread "main" java.lang.NoClassDefFoundError: 」 www.wikiroom.com/java/?path,classpath ・String に == は使うな。equals() を使え。 ・「\12288 は不正な文字です。」 文字リテラル以外で全角スペースは使えません。半角スペースに。 ・その他の質問→「APIのjavadoc見ろ」 前スレッド 【初心者】Java質問・相談スレッド101【大歓迎】 pc11.2ch.net/test/read.cgi/tech/1177938653/ /* 既出の質問や、他に適切なスレが存在する質問は、容赦なく無視されます。 質問をする前にwikiで過去ログ、関連スレ、FAQをチェックしてください。 */ また、当スレで質問をするかたは、回答をもらえたときに、 wikiの更新をして頂ければ、忝なく存じます。 JavaScript, Ajaxの質問は、ここでは受け付けていません。 Web製作板をご利用ください。pc10.2ch.net/hp/ 次スレは>>980 あたりで。
792 名前:デフォルトの名無しさん mailto:sage [2007/06/24(日) 15:07:20 ] main(String[] args) の argsの引数を受け取って、 String s1 = args[0]; String s2 = args[1]; という文を書くと、 引数無しで実行するとエラーになってしまいます。 エラーではなく、正常に実行されてif文で「引数を入れてください」みたいなコメントを出したいのですが どういう条件にすればいいんでしょうか?
793 名前:デフォルトの名無しさん mailto:sage [2007/06/24(日) 15:17:25 ] >>792 args.length でチェック。
794 名前:デフォルトの名無しさん mailto:sage [2007/06/24(日) 15:38:05 ] プロパティファイルって普通どこにどんな名前で保存するんでしょうか
795 名前:デフォルトの名無しさん [2007/06/24(日) 17:26:43 ] JFreeChartに関して 同じグラフの中に棒グラフと折れ線グラフを表示する方法はありますか
796 名前:792 mailto:sage [2007/06/24(日) 17:29:46 ] >>793 出来ました。ありがごうございます
797 名前:デフォルトの名無しさん [2007/06/24(日) 17:36:52 ] 質問があります。入門書に以下のようなサンプル例文があったのですが、 実際のJavaプログラムではこのようなオブジェクト作成、クラス利用は どのように使われているのでしょうか? class roadstarCar{ int type; int engine; } void output(){ System.out.println("車の型は" +type); System.out.println("車のエンジンは" +type); } class honban{ public static void main(String args[]){ roadstarCar eunos = new roadstarCar(); eunos.type = NA6CE; eunos.engine = B6; eunos.output(); }
798 名前:デフォルトの名無しさん mailto:sage [2007/06/24(日) 17:42:19 ] >>797 それが書かれてた入門書って何?
799 名前:デフォルトの名無しさん [2007/06/24(日) 17:57:58 ] SWINGで ボタンにキーを割り当てる方法を教えて頂けませんか? 例えばOKボタンがあって クリックしてもALT+スペースを押しても 同じ動作をする様にしたいです
800 名前:デフォルトの名無しさん [2007/06/24(日) 18:00:32 ] コンストラクタが無いね 例で之は酷くない?
801 名前:デフォルトの名無しさん mailto:sage [2007/06/24(日) 18:02:41 ] >>797 勘違い系の入門書の筆頭だな、そりゃ
802 名前:デフォルトの名無しさん [2007/06/24(日) 18:05:42 ] >>798 やさしいJavaって本です。 本当はCarクラスで、フィールド名はnumとgasだったのですがつまらないんで マツダのロードスターをメインに書き換えてみました。 >>800 この本読んでもつかめなかったのですが、コンストラクタとはいったい何でしょうか?
803 名前:デフォルトの名無しさん [2007/06/24(日) 18:15:16 ] ダイアログを消したいのですが、なぜか 「dispose() は型 new ActionListener(){} で未定義です。」 と言われます。 サンプルとか見てもこれで消えると思ったのですが… OK_button.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent e) { dispose(); } });
804 名前:ぴっころ [2007/06/24(日) 18:26:56 ] はじめまして。ぴっころです。 Cとは少し違うかもしれませんが、キャリフラグとオーバフローフラグ の違いを教えて頂けないでしょうか?
805 名前:ぴっころ [2007/06/24(日) 18:27:47 ] すみません。誤爆でした。
806 名前:デフォルトの名無しさん mailto:sage [2007/06/24(日) 18:42:19 ] やっぱ、やさしいjavaか。最近エンカウント率高いな。 そんな本すぐに窓から投げ捨てろ!! コンストラクタとはインスタンスを初期化するためのしくみ。 あ〜ちなみにやさしいjavaがどういう本かと言うと、 やさしいC++のポインタの説明が無くなったがだけ。 コードがまるっきし同じで説明もまあ、同じ事言ってるかな。 java独自の仕様にはとくに触れてないというか説明してないというか。 んでやさしいC++がCを知らんでもわかるようにってコンセプトでやさしいCって本と内容がかなり重複してる。 第3版なんて5.0対応と謳いつつ、内容は5.0の新機能を使ってないんで5.0でもコンパイラ通るだけ。
807 名前:デフォルトの名無しさん mailto:sage [2007/06/24(日) 19:12:18 ] すげー
808 名前:デフォルトの名無しさん [2007/06/24(日) 19:17:55 ] >>797 色々直してみた class RoadstarCar{ // クラス名はClassNameのように単語ごとに大文字で始める String type; String engine; // 文字列はString型(正確にはクラス)で public RoadstarCar(String type, String engine){ this.type = type; // コンストラクタでインスタンスを生成すると同時に初期設定する this.engine = engine; // ここでは引数で渡された文字列で型式とエンジン名を初期化する } public void printInfo(){ System.out.println("車の型は" + type); // メソッド名は具体的に分かりやすい名前をつける、 System.out.println("車のエンジンは" + type); // methodName()のように小文字で始めて単語ごとに大文字に } } class Honban{ public static void main(String args[]){ // コンストラクタに型式とエンジン名を文字列として渡して初期化 // 文字列を表現するには" "で囲めばよい // いきなりNA6CEとか言われてもコンパイラが困っちゃうよ RoadstarCar eunos = new roadstarCar("NA6CE", "B6"); // ↑クラス名とインスタンス名、メソッド名を明確に区別するためにも // 大文字と小文字を使い分けるのは重要でしょ eunos.printInfo(); // 最後にeunosオブジェクトに情報を表示させる } }
809 名前:デフォルトの名無しさん mailto:sage [2007/06/24(日) 19:24:44 ] >>808 個人的な意見だが、俺なら type と engine は public final にする。
810 名前:デフォルトの名無しさん [2007/06/24(日) 19:25:57 ] やさしいJavaか・・・乙 コンストラクタを説明するにはインスタンスを考えなきゃいけないんだが、インスタンスはOK? クラスってのがデータの設計図で、実際にデータとするのがインスタンスだ。 クラスが携帯のアドレス帳のフォーマットで、インスタンスが登録した1件1件のデータと思いねぇ。 コンストラクタってのは、このインスタンスを生成する時に1回だけ呼び出される特殊なメソッド。 何か特別なこと(初期値の設定)とかする場合もあれば、何もしない場合もある。
811 名前:デフォルトの名無しさん mailto:sage [2007/06/24(日) 19:30:03 ] てか、やさしいjavaは576頁あって半分以上が変数・配列・制御文だからな。 >>808 コンスタラクタ付けただけかい。 carクラスにpublic void printInfo()はやめようぜ。
812 名前:デフォルトの名無しさん mailto:sage [2007/06/24(日) 19:44:54 ] >>803 ・取り囲むクラスに dispose() が無い。 ・>>803 が静的文脈内にあるので、インスタンスメソッド dispose() を呼び出せない。 のどっちか。
813 名前:デフォルトの名無しさん [2007/06/24(日) 19:47:08 ] >>811 それってどんなボッタ?
814 名前:797 [2007/06/24(日) 19:54:22 ] すいません。やさしいJavaのレッスン8からレッスン10をずっと読み直していました。 >>806 本屋のPC書籍のところに大ベストセラーで置いてあって、他の本より安かったんで買ってみました。 この手のプログラミング言語は初めてだったので、これでいいかと思い選びました。 Javaはオブジェクト指向言語らしいのですが、本にはオブジェクト指向プログラムとは何かの説明がまったくないので 広辞苑で調べてみたのですが、ひとつひとつのクラスに役割をもたせて、複数のクラスでひとつの処理をする、という事であっているのでしょうか? カバーの後ろ開きに載ってるやさしいシリーズ、全部おなじ内容だったんですね。流石、経済学部卒ですね>作者 >>808 補足ありがとうございます。今、理解しながら読んでいます。 >>810 本には「コード上で作成される車1台1台の事をオブジェクト、またはインスタンスと呼びます。 本書ではオブジェクトと呼ぶことにしましょう。」 とあるのですが、>クラスが携帯のアドレス帳のフォーマットで、インスタンスが登録した1件1件のデータと思いねぇ。 と説明されれば一発でわかるのに対して、車で解説されると逆に混乱してしまいますね。 本書に、Car car1 = new Car(); とあり、これでインスタンスを作成してるっぽいのですが これを宣言する事によって、>>797 で書いた例文だとhonbanクラスからroadStarCarクラスを呼び出す事が出来るようになる という事でしょうか?
815 名前:デフォルトの名無しさん mailto:sage [2007/06/24(日) 20:01:30 ] >>814 君に「安物買いの銭失い」という言葉を贈ろう。 本は複数買ったほうが良い。1度に一気に買わなくてもいいから。 それぞれの記述の違いを見比べると本質が理解できる場合が多いよ。
816 名前:デフォルトの名無しさん mailto:sage [2007/06/24(日) 20:04:40 ] Core Javaに一刀入魂!
817 名前:デフォルトの名無しさん [2007/06/24(日) 20:07:14 ] 前面にIE 後ろにJavaアプリ(SWING) の状態でIEがアクティブの時にキーストローク送って裏に有るJavaアプリを 操作する方法は無いでしょうか?
818 名前:デフォルトの名無しさん mailto:sage [2007/06/24(日) 20:09:10 ] >>799 InputMap
819 名前:デフォルトの名無しさん mailto:sage [2007/06/24(日) 20:10:07 ] JSPのELで、オブジェクトのアクセッサを介さずに、publicなインスタンス変数に直接アクセスすることはできますか。 他人の作ったクラスで、publicなインスタンス変数にアクセスするものがあるので。
820 名前:810 [2007/06/24(日) 20:17:31 ] クラスとインスタンスの例えで、車とか動物だったらその本はまずNG >>814 インスタンスを生成するってのは、まんまデータを作るって事。 変数を宣言してるので、car1はそのデータに名前をつけていると考えればいい。 つまり、Car car2 = new Car() と書けば、もう1つデータ(インスタンス)が作成させる。 (この辺の例えもアドレスデータで考える方が納得しやすい) なんで、呼び出すことができるってのは間違っていないけど、まずはデータとして利用できるようになるって考えるべき。 アドレスデータであれば、登録(インスタンス化)したんで、見ることができるようになったわけだ。 例えばこんな感じ System.out.println("車の型は" + car1.type); car1のtypeを読み出している ここまで理解できてから、「メソッド」という機能を習得する これはクラス(データ)に操作(振る舞い)を持たせることができる機能
821 名前:デフォルトの名無しさん mailto:sage [2007/06/24(日) 20:26:03 ] メソッドや変数にstaticをつけると、クラスメソッドやクラス変数になるのはわかるのですが、 classにstaticをつけると、どのような処理になるのでしょうか?
822 名前:デフォルトの名無しさん mailto:sage [2007/06/24(日) 20:28:51 ] >>821 静的メンバクラスになる。 static がなければ内部クラスになる。
823 名前:808 [2007/06/24(日) 20:29:27 ] >>812 ありがとうございます。 なぜか、ダイアログをfinalでnewしたらいけました・…
824 名前:デフォルトの名無しさん mailto:sage [2007/06/24(日) 20:31:20 ] >>821 前提として1つのクラスの中に別のクラスを記述する場合にしかclassにstaticは使わない インナークラスっていうんだが、暫くはないものとして考えてOKだと思われ
825 名前:デフォルトの名無しさん [2007/06/24(日) 21:00:10 ] >>822 ,824 ありがとうございます。 調べてみたところ、静的メンバクラスというのは、 クラス配下に静的メンバだけしか持たないということらしいのですが、 一体、どういったときに使用するのでしょうか?
826 名前:736 mailto:sage [2007/06/24(日) 21:04:04 ] >>740 さん 10日でおぼえるJava入門教室 第二版 という本なのですが・・・・ どうでしょうか?
827 名前:デフォルトの名無しさん mailto:sage [2007/06/24(日) 21:17:13 ] >>826 思いっきり丸の内じゃねーかwww
828 名前:デフォルトの名無しさん mailto:sage [2007/06/24(日) 21:21:17 ] >>825 > クラス配下に静的メンバだけしか持たない 逆。内部クラスは静的メンバをもてない。 内部クラスって用語は、結構混乱があるので注意。 本や人によっては「入れ子になったクラス」全般を指してたりする。 俺は言語規定の > 内部クラス(inner class)は,明示的又は暗黙にstaticと宣言されない入れ子クラスとする。 って定義にしたがってるだけ。
829 名前:797 [2007/06/24(日) 21:32:30 ] >>815 大体読んだのですが、そんな気がしてきました。 表面を軽く説明して読者をわかった気にさせる感じですね。 明日、>>816 さんが奨めているCore Javaという本を大きめの書店に探しにいってみます。 >>820 ちょっとアドレス帳で作ってみました。こんな感じでしょうか? この場合のメソッドとは何でしょうか? 本の方には、「クラスの機能を表す仕組み」とあるのですが、このプログラムの場合 アドレスブックに載っているデータを表示するのが目的なので、system.out〜の部分がメソッドになるのでしょうか?
830 名前:797 [2007/06/24(日) 21:38:47 ] 改行が多すぎると言われたので分けました。 class Addressbook{ String name; String address; int phonenum; public Addressbook(String n, String a, int p){ n=name; a=address; p=phonenum; } public void show(){ system.out.println("名前は"+name); system.out.println("住所は"+address); system.out.println("TELは"+phone); } class Sato{ public static void main(String args[]){ Addressbook sato = new Addressbook(); sato.name = "佐藤"; sato.address = "東京都港区赤坂4"; sato.phone = 0355490000; sato.show(); } }
831 名前:デフォルトの名無しさん mailto:sage [2007/06/24(日) 21:47:28 ] show()がAddressbookクラスのメソッド ほかにも、 public String 居住する都道府県を取得(); public void こいつに電話をかける(); とかいろいろ考えられるでしょ
832 名前:デフォルトの名無しさん [2007/06/24(日) 21:53:04 ] >>828 内部クラス != 静的メンバクラスですか? 内部クラス(インナークラス)・・・クラスにstaticがつかず、静的メンバをもてない。 静的メンバクラス・・・クラスにstaticがつく。静的メンバを持っている??? ←ここが分かりません。
833 名前:デフォルトの名無しさん mailto:sage [2007/06/24(日) 22:04:10 ] staticが付いたクラスは名前の前に (外部のクラスの名前). が付いただけの独立したクラス
834 名前:デフォルトの名無しさん mailto:sage [2007/06/24(日) 22:05:02 ] >>832 静的メンバクラスは、インスタンスメンバも 静的メンバを持てる。 内部クラスは、インスタンスメンバは持てるが 静的メンバを持てない。
835 名前:デフォルトの名無しさん mailto:sage [2007/06/24(日) 22:06:20 ] × 静的メンバクラスは、インスタンスメンバも 静的メンバを持てる。 ○ 静的メンバクラスは、インスタンスメンバも 静的メンバも持てる。
836 名前:デフォルトの名無しさん mailto:sage [2007/06/24(日) 22:09:04 ] >>832 実は全然違う。 public class Sample { public static class Inner01 { // 静的内部クラス public String foo() { return Sample.this.toString(); } // この行でコンパイルエラー } public class Inner02 { // 非静的内部クラス public String foo() { return Sample.this.toString(); } } } new Sample.Inner01(); // クラス Sample 外からの Inner01 の new 方法 new Sample().Inner02(); // クラス Sample 外からの Inner02 の new 方法 静的内部クラスは、外部クラスのインスタンスを必要としない。 一方、非静的内部クラスは外部クラスのインスタンスを必要とするけど、その代わりそのインスタンスに暗黙的にアクセスできる。
837 名前:デフォルトの名無しさん mailto:sage [2007/06/24(日) 22:10:28 ] 間違えた。 new Sample().new Inner02();
838 名前:デフォルトの名無しさん mailto:sage [2007/06/24(日) 22:12:43 ] >>827 そんなに糞なのか? 恐いものみたさに立ち読みしてみるか
839 名前:デフォルトの名無しさん mailto:sage [2007/06/24(日) 22:21:31 ] class Sample{ private int value; static class InnerClass{ private Sample 外部クラスのインスタンス; public InnerClass(Sample soto){外部クラスのインスタンス = soto;} public void Hoge(){外部クラスのインスタンス.value = 2;} } これが内部クラス 実際C#だとこんな風にする
840 名前:デフォルトの名無しさん mailto:sage [2007/06/24(日) 22:23:59 ] 実際っていうか、C# の内部クラスは java の静的内部クラスで、 java における非静的内部クラスは C# には無いからなぁ……
841 名前:デフォルトの名無しさん [2007/06/24(日) 22:25:56 ] >>833- みなさん、ありがとうございます。 むずかしいですね。 よく整理したいと思います。
842 名前:デフォルトの名無しさん [2007/06/24(日) 22:47:35 ] フィールドは必要がなければprivate にしてカプセル化したほうが よりスマート クラスのできればpublic private 等を上手く使ったほうがいいだろう javaのこういた部分は洗練されてるので私は好きですね
843 名前:デフォルトの名無しさん [2007/06/24(日) 23:32:24 ] ある数以下に含まれている素数をすべてスクロールリストに表示するプログラムを作っているのですが どうしても上手くいきません。どこがおかしいか指摘していただけるでしょうか? import java.awt.*; import java.awt.event.*; import javax.swing.*; public class ex2a extends JFrame { JTextField f1 = new JTextField(); JButton b1 = new JButton("変更");
844 名前:843 mailto:sage [2007/06/24(日) 23:33:41 ] すいませんまちがえました。以下が本物です。 import java.awt.*; import java.awt.event.*; import javax.swing.*; public class ex2f extends JFrame { JTextField f1 = new JTextField(); DefaultListModel model = new DefaultListModel(); JList l1 = new JList(model); JButton b1 = new JButton("表示");
845 名前:843 mailto:sage [2007/06/24(日) 23:34:49 ] public ex2a() { setSize(400, 200); setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); Container c = getContentPane(); c.setLayout(null); c.add(f1); f1.setBounds(40, 40, 180, 40); c.add(b1); b1.setBounds(240, 40, 80, 40); b1.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent evt) { int n = (new Integer(f1.getText())).intValue(); boolean sosu = true; for(int i = 2; i < n; ++i) { if((n % i) == 0) { sosu = false; } } f1.setText("prime number : " + sosu); } }); } public static void main(String[] args) { (new ex2a()).setVisible(true); } }
846 名前:デフォルトの名無しさん mailto:sage [2007/06/25(月) 00:07:13 ] なにがやりたいのかがわからない。 JListに表示したいのならば、JListに追加する。 actionPerfomedの中は、 int n = (new Integer(f1.getText())).intValue(); Vector primeList = new Vector(); for (int i = 2; i <= n; ++i) { if(i が 素数) primeList.add(new Integer(i)); } l1.setListData(primeList); こんな感じだ。
847 名前:デフォルトの名無しさん [2007/06/25(月) 00:18:42 ] >>817 は不可能なんでしょうか? おねがいします
848 名前:デフォルトの名無しさん mailto:sage [2007/06/25(月) 00:22:49 ] >>847 WindowsアプリとJavaアプリのとの違いを勉強しておいで
849 名前:デフォルトの名無しさん [2007/06/25(月) 00:31:30 ] dll経由のネイティブインターフェイスを使ったり ランタイムをつかったり いろんな方法があるので、具体的にどんな操作を 行いたいのかが纏まってからの方がよさそう
850 名前:デフォルトの名無しさん [2007/06/25(月) 00:35:02 ] >>848 ,849 JNIで実装したいのですが、、
851 名前:843 mailto:sage [2007/06/25(月) 01:05:02 ] >>846 ありがとうございます。Vectorの使い方がよく分からなかったので、配列を使ってやってみたのですが シンボルが見つからないとエラーがでてしまいました。一体どこがおかしいのでしょうか?たびたび申 しわけございません。 import java.awt.*; import java.awt.event.*; import javax.swing.*; public class ex2f extends JFrame { JTextField f1 = new JTextField(); JList l1 = new JList(); JButton b1 = new JButton("表示");
852 名前:843 mailto:sage [2007/06/25(月) 01:06:33 ] public ex2f() { setSize(400, 200); setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); Container c = getContentPane(); c.setLayout(null); c.add(f1); f1.setBounds(40, 40, 180, 40); c.add(l1); l1.setBounds(40, 100, 180, 40); c.add(b1); b1.setBounds(240, 40, 80, 40); b1.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent evt) { int m = (new Integer(f1.getText())).intValue(); int j = 0; int[] primeList = new int[100]; for(int n = 1; n <= m; ++n) { boolean sosu = true; for(int i = 2; i < n; ++i) { if((n % i) == 0) { sosu = false; } } if(sosu) { primeList[j] = n; ++j; } } l1.setListData(primeList); } }); } public static void main(String[] args) { (new ex2f()).setVisible(true); } }
853 名前:デフォルトの名無しさん mailto:sage [2007/06/25(月) 01:40:05 ] シンボル未解決なんてどうせどっかタイプミスしてんだろ。 エラーメッセージに出てる行とその前後をよく見直せ。
854 名前:749 [2007/06/25(月) 02:09:03 ] >>771 参考になりました。 無事実装できました。 sourcepost.sytes.net/sourcepost/sourceview.aspx?source_id=29498 uproda11.2ch-library.com/src/1111460.png
855 名前:デフォルトの名無しさん mailto:sage [2007/06/25(月) 04:16:38 ] おめでとう
856 名前:デフォルトの名無しさん mailto:sage [2007/06/25(月) 07:38:38 ] >>843 配列を使うほうが難しいのでVectorを勉強するべき 時に、i++ でなくて ++i を好んで使うのはなんで?
857 名前:デフォルトの名無しさん mailto:sage [2007/06/25(月) 07:39:30 ] 補足し忘れた。 VectorはArrayListと使い方は一緒
858 名前:デフォルトの名無しさん mailto:sage [2007/06/25(月) 08:07:05 ] C++ 使いはイテレータの関係上 ++i を好む傾向がある。
859 名前:デフォルトの名無しさん mailto:sage [2007/06/25(月) 09:23:49 ] long型より大きい数を使いたい場合には変数はどのようにすればいいのでしょうか?
860 名前:デフォルトの名無しさん mailto:sage [2007/06/25(月) 09:27:29 ] BigInt
861 名前:デフォルトの名無しさん [2007/06/25(月) 10:21:25 ] >>859 ヘルプで変数見たらサイズとか範囲とかあるだろ? そんなことすら調べれないならPGなんかすんな
862 名前:859 [2007/06/25(月) 10:28:37 ] >>861 お前には聞いてない。
863 名前:デフォルトの名無しさん mailto:sage [2007/06/25(月) 10:44:10 ] >>862 >>860 >>861
864 名前:デフォルトの名無しさん [2007/06/25(月) 10:44:27 ] #include<stdio.h> #include<time.h> void main() { int a,b,c,d,e,hp1,hp2=100,etou; printf("相手を選んでください。\n1.江藤(Lv1) 2.シーツ(Lv2) 3.金本(Lv3)\n"); scanf("%d",&b); printf("\n"); if(b==1) { hp1=100; while(hp1>0) { a=time(0); a=a%21;
865 名前:デフォルトの名無しさん [2007/06/25(月) 10:49:08 ] etou=time(0); etou=etou%35; printf("プレイヤー(HP:%d)vs江藤(HP:%d)\n",hp1,hp2); printf("選択してください。 1.攻撃 2.寝る\n"); scanf("%d",&c);printf("\n"); if(c==1) { printf("プレイヤーは江藤を殴った。\n江藤に%dのダメージをあたえた!!\n\n",a); hp2=hp2-a; if(hp2<=0){e=1;} else if(hp2>0){ printf("江藤の逆襲だ!\nプレイヤーは%dのダメージをくらった!!\n\n",etou/2); hp1=hp1-(etou/2); } }
866 名前:デフォルトの名無しさん [2007/06/25(月) 10:49:44 ] 晒していい?答えは聞いてない! 内部型がどうこういってるやつは javafaq.jp/ のS14~16読んでこい。
867 名前:デフォルトの名無しさん [2007/06/25(月) 10:50:47 ] else if(c==2) { if(hp2>0){ printf("江藤の攻撃だ!\nプレイヤーは%dのダメージをくらった!!\n\n",etou/2); hp1=hp1-(etou/2);} else if(hp1<0){e=2;} } } if(e==1)printf("あなたの勝ちです!!\n"); else if(e==2){printf("あなたの負けです!!\n");} } printf("ゲーム終了です\n"); }
868 名前:デフォルトの名無しさん [2007/06/25(月) 10:52:49 ] >>859 またお前か 最近ム板で暴れまわってるなw 猛威を振るう台風のようだ くだらん事で荒しまくりwwww
869 名前:デフォルトの名無しさん mailto:sage [2007/06/25(月) 13:03:48 ] もの凄い初心者ですまんとです eclipse+VEでSWTで何か作っとるとですが イメージを貼り付ける方法がわからんとです 「Image xxx;」とかするとエラーになるとです 誰か教えて欲しいとです
870 名前:デフォルトの名無しさん mailto:sage [2007/06/25(月) 14:25:33 ] ものすごい初心者ならばコンソールアプリケーションから学べ
871 名前:デフォルトの名無しさん mailto:sage [2007/06/25(月) 14:29:27 ] それはコマンドプロントとかでやるヤツのことですか? 一応やったとです
872 名前:デフォルトの名無しさん [2007/06/25(月) 14:45:07 ] try chatchは条件分岐に使ってもよいのでしょうか? 例えばArrayIndexExceptionが起きたら、違う処理をさせるとかです。 たくさんやる処理なのでif文で分岐させるのと、 どっちが速いかとか気になります。
873 名前:デフォルトの名無しさん mailto:sage [2007/06/25(月) 14:49:03 ] >>872 タブー try-catchは例外処理の為の仕組みだから条件分岐には使用しちゃダメ ちなみにパフォーマンスも悪い 例外ケースが最速になるような最適化をすると思うかい?
874 名前:デフォルトの名無しさん mailto:sage [2007/06/25(月) 14:49:11 ] 基本的に例外は遅いし、 プログラムを読む時に基本的にまずエラー処理の文脈で理解されるものだから、 単なる条件分岐の代わりとして try-catch は使わないのが基本。 大抵は補助的に関数を使うこと等で解決できると思うが。
875 名前:デフォルトの名無しさん mailto:sage [2007/06/25(月) 15:29:13 ] 初心者な質問ですみませんが、メインメソッドに対してString型以外 (例えばint)を引数として渡すにはどうすればよいでしょうか。 public static void main(int args)ではコンパイルエラーでした。
876 名前:デフォルトの名無しさん mailto:sage [2007/06/25(月) 15:31:28 ] >>875 コンパイルエラーが起きるとも思えんが。
877 名前:デフォルトの名無しさん mailto:sage [2007/06/25(月) 15:35:03 ] ありがとうございます。 アルェーEclipseからfatalなんちゃらって文句言われたんですが…。 しかし、構文としては問題ないみたいですね。 ケアレスミス含め、他の部分を見直すことにします。
878 名前:デフォルトの名無しさん mailto:sage [2007/06/25(月) 15:39:06 ] public static void main(String[] args) はないとだめだからな。 Javaはここから以外で始まらない
879 名前:デフォルトの名無しさん mailto:sage [2007/06/25(月) 15:42:14 ] >>875 普通、シェルがコマンドライン引数としてjavaプログラムに渡す引数は文字列しかない。 引数に数字が入っていてもそれは数字を表す文字であって数値とは解釈されない。 数値と解釈するか文字列と解釈するかは受け取る側のプログラムに任されている。 なので、public static void main(String[] args)で受けて、 引数をintとして解釈したいならInteger#parseIntなり他の手段なりで、 文字列をintに変換する必要がある。
880 名前:デフォルトの名無しさん [2007/06/25(月) 15:42:58 ] >>872-873 イベント駆動型の条件分岐はあるけどね
881 名前:デフォルトの名無しさん mailto:sage [2007/06/25(月) 15:51:22 ] 難読化の手法の一つとしては条件分岐を例外処理に書き換えるってのがあるけれど、 実行効率とかを考えると使いどころが難しいし、書き換えは人間がやる仕事ではない。 「たくさんやる処理」に適用するならなおさら
882 名前:デフォルトの名無しさん [2007/06/25(月) 17:02:33 ] public static void main(String[] args){ try{ int a = Integer.parseInt(args[0]); int b = Integer.parseInt(args[1]); int c = Integer.parseInt(args[2]); こんなことするのは邪道ですか? }catch(Exception e){ System.err.println("usage hogehoge"); } }
883 名前:デフォルトの名無しさん mailto:sage [2007/06/25(月) 17:06:44 ] >>882 どこが邪道だと思うのかを書かないと何とも言えない
884 名前:デフォルトの名無しさん mailto:sage [2007/06/25(月) 17:19:04 ] >>882 args の長さを最初に1回チェックすればいいだけだろ? 何で例外使うのか。
885 名前:デフォルトの名無しさん mailto:sage [2007/06/25(月) 17:30:26 ] Exceptionでcatchする時点でタコ
886 名前:デフォルトの名無しさん mailto:sage [2007/06/25(月) 17:34:13 ] >>884 はあ?長さ?
887 名前:デフォルトの名無しさん mailto:sage [2007/06/25(月) 17:50:56 ] ぷww length 【名-1】 長さ、全長{ぜんちょう}、丈
888 名前:デフォルトの名無しさん [2007/06/25(月) 18:04:51 ] ばかばっかだなw
889 名前:デフォルトの名無しさん mailto:sage [2007/06/25(月) 18:10:35 ] >>882 問題なし
890 名前:デフォルトの名無しさん mailto:sage [2007/06/25(月) 18:22:58 ] Integer.parseInt なら大した処理じゃないからいいように見えるが、 その処理がもの凄い時間がかかる場合は? とか考えると、先にコマンドライン引数の個数をチェックした方が一般的にはいい。 個数だけじゃ判定できないって場合は別だが。
891 名前:デフォルトの名無しさん mailto:sage [2007/06/25(月) 18:38:10 ] 初めて来てみた。で、いきなり笑った もう来ません。ありがとうございましたw
892 名前:デフォルトの名無しさん mailto:sage [2007/06/25(月) 19:03:54 ] アプレットについて質問です。 Color fontcolor=new Color(0,0,255); String v23=getParameter("fontcolor"); if( v23!=null ) fontcolor=new Color(Integer.parseInt(v23,16)); System.out.println(fontcolor); System.out.println(v23); >java.awt.Color[r=0,g=0,b=255] >null 色情報を取り出して(0,0,255) => (0000FF)と16進数に変換して もう一度 Colorオブジェクトを生成することを示すコードだとは思うのですが、 どう意図でもってこう記述されているのかわかりません >< 古いバージョンのVMだと意味があるとか、そういうことなのでしょうか? よろしくお願いします。