Java、Android開発の職業訓練について Part.2
public class StringObj { public static void main(String[] args) { String[] a = {"DEF", "ABC"}; String b = "ABC"; String c = "A" + "B" + "C"; String d = new String(); d = "ABC"; System.out.println(a[1] == b); System.out.println(a[1] == c); System.out.println(c == d); } } うちの職業訓練ではこれが全部trueになる理由とかもちゃんと教えてくれる。 みんなの通っている学校はどう?
574 :
仕様書無しさん :2013/08/08(木) 09:35:17.16
>>573 これネタでいってんの?
むしろFalseになったり、ABC == ABC, a[1] == b,
のまま表示されると思うやつがいたらあきらめてもらおうよ。。
>>572 お前はどれだけやる気あるの?
やる気ある人は職業訓練なんて行かずに未経験で業界に飛び込んで、
昼は納品する本物のシステムに触れ、夜は自分で勉強したり勉強会に
参加したりしてるけど。
教育の質なんてたかが知れてる職業訓練校で のほほーんと座学してるような奴がやる気とか言ってるワロタww
未経験で業界に飛び込もうとして、月に3件ぐらい受けてたらしいけど 1年間ニート状態だった人が訓練に来てた 社交性もあってJAVAも独学で多少できてたから、それ聞いて気持ち入れなおして勉強した
>>574 ネタではない。こういうのを知らないから職業訓練というものがあるんだ。
経験者は仕事をすればいい。
俺、人当たりはいいし面接受けもいいから、
>>575 みたいな流れで未経験で会社に入ることは出来ると思う。
でも、何も知らないと、入った後に必ずチームに迷惑や負担を掛けるから、
やっぱ座学でもいいから下地を整えてから仕事したい。
前の会社で、「私はそれ知らないので出来ませんキリッ」ってやつがいて、
その不愉快は尋常じゃなかった。自分はそうならないように訓練するわ。
580 :
仕様書無しさん :2013/08/08(木) 12:43:17.99
本日は職業人講話 講師によると仕事に必要なのは 1タフであること 2コミュニケーション能力があること 3自分で調べる能力があること 2が足りない人が多い
>>573 これからJavaの職業訓練を受ける者だが
これぐらいなら授業を受けるまでもなく解けるよ
Stringとは文字列の型、
>String[] a = {"DEF", "ABC"}
これはa配列変数を使って、配列番号0にはDEFを
配列番号1にはABCを入れている
>String b = "ABC";
これは読んで字のごくb変数にABCを入れている
>System.out.println(a[1] == b);
で、これはa配列変数1に入っている値は、b変数に入ってる値なのか?と書いてるわけなので
答えはYes、なのでtrueが表示されることになる
>>573 >String c = "A" + "B" + "C";
これはただ単に、String型のc変数に、AとBとCを合わせて代入しているだけなので
C変数はABCになっている
>System.out.println(a[1] == c);
なのでこれもtrueになる
>String d = new String();
これはString型のd変数に値を代入しようといているが
ここに書いているのはnew演算子
new演算子を使うとコンストラクタ(初期化)を読みに行くようになる
それが、下の「d = "ABC";」である
>System.out.println(c == d);
なので、これもtrueだ。
これぐらいなら職業訓練を受ける前に解かりますね
文字列リテラルは全部同一インスタンスになることを言わないと == で true になる理由には足りないんじゃない
>>581-582 ドヤ顔しているところ悪いが、異なるオブジェクト参照をequalsメソッドじゃなくて
==演算子で比較してるのに、なんでtrueと評価されるのかっていう設問だと思うが。
コンスタントプールでぐぐってみ
で、これはJavaの職業訓練を受け始めて 何日目で教わるものなのかな? まさか、この程度のものを1週間も2週間も掛かるわけではないよね? これぐらいのJavaの基礎なら 初日に終わらせてほしいですね 俺が知りたいのは、Javaのオブジェクトを活用した もっとレベルの高いオブジェクトの使い方だ
まあ、これ。講師でも理解できてない講師いたんだけどね…w
System.out.println(a[1] == new String("ABC")); => false
>>584 ==は比較演算子です。
それを表示するように書いた場合、
YesかNoの2つしかない
そして、Yesのことをtrue、Noのことをfalseとして扱うことになり
これを返り値と言う
「なぜtrueが表示されるのか」という問題だとするなら
もっとレベルの低い問題になるよ
オブジェクトの同一性と等値性、そしてなぜStringオブジェクトだけが 特別扱いされているのかもわかってないのに、 >俺が知りたいのは、Javaのオブジェクトを活用した >もっとレベルの高いオブジェクトの使い方だ だっておwwwwwww ↓説明できる???なんでfalseなの?? System.out.println("A" + "B" == "A".concat("B")) => false
595 :
仕様書無しさん :2013/08/08(木) 13:27:32.93
>>581 >>582 >>590 ひどいアスペを見て戦慄している。
String a = "ABC";
String b = new String("ABC");
String c = new String(new char[]{'A', 'B', 'C'});
String d = (new StringBuilder()).append("ABC").toString();
System.out.println(a == b);
System.out.println(a == c);
System.out.println(a == d);
System.out.println(b == c);
System.out.println(b == d);
System.out.println(c == d);
aもbもcもdも値はABCだけどぜんぶfalseになる。
>>573 ではオブジェクトが同じであることに言及しないと間違いだと思うよ。
だいたいさ、 >俺が知りたいのは、Javaのオブジェクトを活用した >もっとレベルの高いオブジェクトの使い方だ そういうことが職業訓練校ごときで学べると思ってんの? そうだとしたら、どんだけおめでたいんだよっていう。 大学にでも行けよww あ、その前に基本的な言語仕様ぐらいはちゃんと勉強していってねw
>>595 わざと言及しないで職業訓練を馬鹿にしている人を観察したかっただけ。
実務レベルでやらかさないように、気を引き締めて欲しいと思います。
598 :
586 :2013/08/08(木) 13:46:18.38
>>596 それを教えて頂きます
俺はC言語やC++をマスターしてる
Javaもほぼ理解してる
なのでイチからJavaを学ぶような人と一緒にしてほしくないな
C++がわかるならレベルの高いオブジェクトの使い方()もわかるっしょ イチからJavaを学ぶような人と同じ教室に通うのが身の丈に合ってるって ほんとは自分でもわかってるんだろ、初心者君w
600 :
仕様書無しさん :2013/08/08(木) 14:01:21.51
>>582 >new演算子を使うとコンストラクタ(初期化)を読みに行くようになる
>それが、下の「d = "ABC";」である
d = "ABC"はただの代入。コンストラクタは関係ない。
>>590 Stringはオブジェクト型で、==は参照比較演算子。
参照が同じときtrueになる。
>>599 なぜC++をマスターしてることが
Javaのレベルの高いオブジェクトも理解してることになるんだよ
俺は知らないと言ってるんだから知らないんだよJavaは
C++でもオブジェクトは使うが
Javaは、JavaAPIを使う技術だろう
JavaAPIには、数えきれないぐらいのクラスやメソッドが用意されている
その数えきれないほどのクラスやメソッドの有効的な使い方を学びたいと言ってるんだよ
http://docs.oracle.com/javase/jp/6/api/ このサイトに行ってみなよ
Javaでプログラミングをするからと言って
ここに書いているクラスを全て身に着けるのは無駄だろう
>>601 丸暗記は必要なし。実務でどのクラスを使うか、すぐ調べられる能力のほうが重要。
603 :
仕様書無しさん :2013/08/08(木) 14:10:01.99
>>601 C++をマスターしてるならオブジェクト指向プログラミングを
知り尽くしててSTLも使いこなせるでしょうに。Javaのライブラリの
使い方くらい教えてもらわなくてもわかるだろ。
>>600 いいえ
new演算子はクラスのコンストラクタを読みに行く技術です
コンストラクタはクラスの初期化を意味する
それだけは違わない
>String d = new String();
このように書いた場合、頭の「String」はクラスになる
その後のdはオブジェクトです。
そして「new String()」こう書くと、Stringクラスのコンストラクタにアクセスすることになる
>d = "ABC";
そして、これはd変数にABCを代入するように書いているが
ここではd変数の型名を指定していない
>String d = new String();
つまり、これはd変数の型名をString型で使うことを意味している
Stringは型名だが、これもクラスの一つです
>>601 ワロタw
OCJ-P だって、出題されるのは基本的なクラスのみ。
Javaには莫大なAPIがあるが、そんな一個一個の詳細を学校で教えてもらえると本気で思ってるなら、ただの間抜けだわw
>d = "ABC"; つまり、これはフィールドという考え方
607 :
仕様書無しさん :2013/08/08(木) 14:23:24.90
>>604 >new演算子を使うとコンストラクタ(初期化)を読みに行くようになる
>それが、下の「d = "ABC";」である
new String()でStringのコンストラクタは呼ばれるけど、
そのこととd = "ABC"は関係ないよねってこと。
String d = new String();
d = "ABC";
を
String d;
d = "ABC";
と書いても結果は変わらないし、
String d = "ABC";
と書いても結果は変わらないよねってこと。
複数言語をマスターした人が、Javaの標準ライブラリの使い方を教わりに 職業訓練校に通うっていう発想w
609 :
仕様書無しさん :2013/08/08(木) 14:32:58.46
>>606 フィールドはオブジェクトの状態。
ローカル変数はオブジェクトの状態ではない。
dはローカル変数。
なのでdはフィールドではないよ。
610 :
573 :2013/08/08(木) 14:35:28.42
タイムアップです。 ここまでの話でどれだけの時間を費やしましたか? 職業訓練では実践に基づいたすごく細かいところを丁寧に教えてくれる有能な教師もいるっていうこと。 そして、訓練を希望される方。ググりましたか?または本でしらべましたか? なぜこうなるか考えましたか? 以上です。おもしろい解答ありがとうございました。
>>607 だが、実際のソースコードを見れば
String d;
d = "ABC";
とも、
String d = "ABC";
とも書いてないだろ
だが、表示するコードでは、
System.out.println(c == d);
このようにdとだけ書いている
これをd変数と読むかdフィールドと読むかの違い
d変数と読むなら型名を指定していないので
d変数は、int型なのかfloat型なのかstring型なのか分からないので
trueなどは表示されない
これぐらい説明されたら一発で理解しろよな それをウダウダと持論を展開して 理解しようとしないから、こんな簡単なことも理解できないだよ ブチ殺すぞ
613 :
仕様書無しさん :2013/08/08(木) 15:34:42.59
久々にkskしましたな この様子だと今期の生徒達はいつになく 優秀なようですね 皆さん頑張りましょうね
614 :
573 :2013/08/08(木) 15:35:01.95
ふいた
public class StringObj { public static void main(String[] args) { String[] a = {"DEF", "ABC"}; String b = "ABC"; String c = "A" + "B" + "C"; String d = new String(); d = "ABC"; System.out.println(a[1] == b); System.out.println(a[1] == c); System.out.println(c == d); } } もう一度おさらいしてやるが、このソースコードの場合dは変数ではない d変数にABCを代入しているのではなく、 dオブジェクトにABCを代入している あとStringは、Javaで使う文字列を扱う型名だが、 これの正体は、Stringクラスである そして、Javaは自分でオリジナルの型名を作ることも出来る
616 :
仕様書無しさん :2013/08/08(木) 15:36:32.40
>>612 最後の行いらないかな
それを書かなければもう少し幸せになれたのに
>>612 訓練校ではビジネスマナーも教えてもらえるので行ったほうがいいんじゃないですか?
多分、この問題の一番のポイントは、 String d = new String(); d = "ABC"; この部分だろうね。 C言語をちょこっとかじったような 上のような知ったか野郎は、自分で恥発言をしている通り d変数にABCを代入しているまでしか理解できない だがソースコードをよく見てみろ new演算子を使ってるではないか そこで疑問を感じろよクズ 「どうしてnew演算子を使ってるのだろうな」とな! で、下の行に行くとdにABCを代入しているように書いているが、 このdには「型名を指定していない」ということにも気づけよバカぁ!
619 :
573 :2013/08/08(木) 15:47:24.26
String d = new String("ABC"); d = "ABC"; こう書くともっと面白い答えもでそうでしたけどね。
620 :
仕様書無しさん :2013/08/08(木) 16:38:18.67
>>615 dオブジェクトにABCを代入ってどういうこと?
オブジェクトに代入することはオブジェクトの状態を変えることだと仮定する。
不変オブジェクトはオブジェクトの状態を変えることができないもの。
Stringオブジェクトは不変オブジェクト。
dはStringオブジェクト。
なので仮定は誤りであるみたいな。
>>615 >もう一度おさらいしてやるが、このソースコードの場合dは変数ではない
>d変数にABCを代入しているのではなく、
>dオブジェクトにABCを代入している
いいか?馬鹿向けにもう一度おさらいしてやる。
dは、Stringオブジェクトへの参照を格納するString型の"変数"です。
C++わかるんだろ?dはStringオブジェクト自体ではなく、Stringオブジェクトへのポインタです。
622 :
573 :2013/08/08(木) 16:52:01.15
>>621 フォローありがとうございます。
dの”参照先”を変更するという引っ掛け問題でした。
しかしこれだけのことでこんなに時間がかかるようなら、ほんとうに職業訓練いったほうがいいとおもいますよ。
すぐ解決しますよ。時間は有限リソースです。それを縮めてくれるのが、訓練。
あと、自分がどれだけ目の前におかれた課題に対して深く調べていくか。
そういう能力も必要になっていきます。
>>620 >dオブジェクトにABCを代入ってどういうこと?
え?そういうところから説明しないといけないのか・・・。
String d = new String();
例えば、このように書いた場合、Strongクラスで、dオブジェクトを使うことを意味する
クラスでオブジェクトを使うというのが、オブジェクト指向の考え方で、
Strongクラスには、このクラスのメソッドが入っていて、
それをdオブジェクトとして使用するということ
String eee = new String();
こんな風に書いた場合、同じStringクラスのメソッドをeeeオブジェクトで使うということです
クラスは1つ、それをたくさんのオブジェクトで使うということです。
ここまでは、オブジェクトの基礎です。
String d = new String(); で、このようにnewと書くと、new演算子を使って、 その後ろに書いたクラスのコンストラクタを読みに行くということを意味します。 コンストラクタとは、クラスの初期化のようなものです。 そして、そのクラスの内容を ここではdオブジェクトで使用すると書いています。 d = "あんぽんたん"; なので、こう書けば、dオブジェクトのStringクラスに 「あんぽんたん」という文字列を代入することになるわけです。
>>621 >C++わかるんだろ?dはStringオブジェクト自体ではなく、Stringオブジェクトへのポインタです。
Stringはクラスです
dがオブジェクトです
ブチ殺すぞ
あ、いや。 「クラスをオブジェクトで使う」と表現した方がいいのか 「クラスでオブジェクトで使う」と言うと分かり難いな
627 :
仕様書無しさん :2013/08/08(木) 17:14:26.65
>>624 ==はオブジェクトが同じであればtrueを返す。
String c = "ABC";
String d = new String();
のとき、c == dはfalse。
なのでcオブジェクトとdオブジェクトは異なるオブジェクト。
d = "ABC";
によってdオブジェクトに"ABC"が代入されると仮定する。
dオブジェクトはcオブジェクトと異なることに変わりはない。
c == dはfalseになるはず。
c == dはtrue。なので仮定は誤りであるみたいな。
誤字訂正) String d = new String(); 例えば、このように書いた場合、Stringクラスを、dオブジェクトを使うことを意味する クラスをオブジェクトを使うというのが、オブジェクト指向言語の考え方で、 Stringクラスに、このクラスのフィールドが入っていて、 それをdオブジェクトとして使用するということです。 public class AA { // フィールドの宣言 public int aaaa; public int bbbb; // コンストラクタ public AA(int a, int b){ this.aaaa = a; this.bbbb = b; } } ちなみに、クラスの中身は、このようになっています
629 :
573 :2013/08/08(木) 17:23:27.24
えっと、もっと簡単にいいます int a = 1; a = 2; こういうプログラムがあります。 aの初期値は1 次の行でa = 2になります。 aが1から2に変更されます。プリミティブ型なので値が変わるだけですが。 ここまでは大丈夫という事で進めます で、 String d = new String(); と定義しますこれはString型のオブジェクト変数dの参照先がnewされたString型のオブジェクトへの参照となります 次の行で d = "ABC"; とすると、String型の変数dの参照先はコンスタントプール内の"ABC"を指すようになります つまり参照先の上書きです。おわかりでしょうか?
お前らがうらやましいよ うちの場合は はい、じゃあ今日は何ページのソースを入力してみましょう せんせーコンパイル通りませんー しょうがないなー今見に行くから あ、カンマが抜けてますね これで全時間の80%くらい終わる 今日が初日とかなら仕方ないかもしれないけどなぁ
631 :
仕様書無しさん :2013/08/08(木) 18:21:47.63
632 :
573 :2013/08/08(木) 18:31:14.01
おー、図にするとわかりやすいですね。ありがとうございます!!!
>>618 1つの関数内で同じ名前の変数を複数宣言することはできない。
d = "ABC";
のdに型名がないのは、変数がすでに宣言されてるからだよ。
String dで変数dの宣言が行われる。
>>624 オブジェクトの状態を変えるのならこうしないといけない。
public class Test {
public static void main(String[] args) {
StringValue s = new StringValue();
s.value = "美神令子";
}
}
class StringValue {
String value;
}
> 俺が知りたいのは、Javaのオブジェクトを活用した > もっとレベルの高いオブジェクトの使い方だ キミはJavaの訓練以前に、いろんな職業訓練のパンフレットを見て、 それがどんなレベルの人を対象としてどんな内容なのか 想像する力を養う訓練が、必要。 予行練習として、AVのパケと内容の乖離を予測できるよう練習しておくとよい。
635 :
仕様書無しさん :2013/08/08(木) 22:46:57.85
test
636 :
仕様書無しさん :2013/08/08(木) 23:41:45.47
>>633 まだ言ってるのか
String d = new String();
このように書いた場合はインスタンス作成になるということだ
d = "ABC";
だから、こう書けばdオブジェクトのStringクラスに"ABC"を代入するということ
ここまでレベルが低すぎると嫌んなっちゃうわ
String型は文字列を扱う変数だが、
この型には範囲は指定されていない
入れた文字列によって自動的に範囲が増えたり減ったりする
>>633 >オブジェクトの状態を変えるのならこうしないといけない。
だから、そのStringクラスの内容は、
Javaの中で定義されてるんだよ
「入れた文字列によって範囲を自動的に調整する」ようにな
>dに型名がないのは、変数がすでに宣言されてるからだよ。 >String dで変数dの宣言が行われる。 だから、それが String d = new String(); だと言ってんだろバカw
>>631 これはどういうツールで書いたものですか?
安西先生、プログラミングがしたいです
642 :
仕様書無しさん :2013/08/09(金) 07:40:36.79
>>640 Apache OpenOffice Draw
>>639 >このdには「型名を指定していない」ということにも気づけよバカぁ!
こう言ってたからさ、dはすでに宣言されたものだから再度宣言することできないよってこと。
>>638 String型は不変オブジェクトだからオブジェクトを作ったあとに
状態を変えることできないよ。
>>637 クラスはオブジェクトの設計図なのでクラスに代入するという表現は間違いだと思う。
String c = "ABC";
String d = new String();
d = "ABC";
オブジェクトが変わらないのであれば、こう書いたときc == dはfalseになるはずだよ。
でもそうならない。だからあなたが言ってることはでたらめ。
>>642 Age of Mythology
ありがとうございます。
ああ、コピペ出来ずにイミフなペーストしてしまった(;´∀`)
645 :
573 :2013/08/09(金) 08:44:37.69
頼むからちゃんと説明した私の答えも見てくれw
629に書いてあるからさ。
あと教えてる側もdに"ABC"の「実体」を代入じゃなくて、dの変数を"ABC"オブジェクトの参照先に入れ替えるということをちゃんと、理解してくれ。
631にも図で説明されたのもあるし、すごくわかりやすいからそれも見ながら。
あとeclipseでも入れてちゃんとコード打ち込んでステップ実行してみてくれ。
あと、ほんとに知りたいならsrc.jarの中も見れ。
日本語化されていろいろべんりなeclipseが
http://mergedoc.sourceforge.jp/ ここにあるからさ。
あと、厳しいながらもちゃんと教えてくれた人たちに「ありがとう」のひとことぐらい言ったらどうさ。
若い人ならそれでやっていけるからさ、年寄りだったら手におえんw
そして、私からも一言。このネタに付き合ってくれて ありがとう。
package jp.works; import java.util.Timer; import java.util.TimerTask; import javax.swing.ImageIcon; import javax.swing.JFrame; public class TestMain { public static void main(String[] args) { TestMain tm = new TestMain(); tm.start(); } JFrame mainwindow; TestMain(){ this.mainwindow = new JFrame("テスト"); this.mainwindow.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); this.mainwindow.setSize(640, 480); this.mainwindow.setLocationRelativeTo(null); this.mainwindow.setVisible(true); this.mainwindow.setResizable(false); ImageIcon icon = new ImageIcon("img/icon.png"); this.mainwindow.setIconImage(icon.getImage()); } void start(){ Timer t = new Timer(); t.schedule(new RenderTask(), 0, 16); } class RenderTask extends TimerTask{ @Override public void run() { } } }
647 :
646 :2013/08/09(金) 08:53:55.08
>>642 じゃあ、これを解いてみてくれ
このJavaプログラムはnew演算子を4つ使っています
つまりインスタンス作成の発展版だよ
TestMain tm = new TestMain(); これは、TestMainクラスをtmオブジェクトでインスタンス作成をしている new演算子を使ってるので、 TestMain(){ this.mainwindow = new JFrame("テスト"); this.mainwindow.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); this.mainwindow.setSize(640, 480); this.mainwindow.setLocationRelativeTo(null); this.mainwindow.setVisible(true); this.mainwindow.setResizable(false); ImageIcon icon = new ImageIcon("img/icon.png"); this.mainwindow.setIconImage(icon.getImage()); } なので、ここのコンストラクタでtmオブジェクトがTestMainクラスでインスタンス作成される String d = new String(); これと全く同じ仕組みです ImageIcon icon = new ImageIcon("img/icon.png"); ここにも、new演算子を使ったインスタンス作成があります ImageIconクラスでiconオブジェクトをインスタンス作成をしているので、 icon.pngの画像を取り込んでImageIconクラスのコンストラクタ(初期化)を読み組む this.mainwindow.setIconImage(icon.getImage()); そして、ここでsetIconImageメソッドで、iconオブジェクトのgetImageメソッドを呼び出し それをthis.mainwindowによりmainwindowに適用させる
tm.start(); ここでは、tmオブジェクトでstartメソッドを呼び出している void start(){ Timer t = new Timer(); t.schedule(new RenderTask(), 0, 16); } そのstartメソッドは、ここで記述しているのだが、 ここでは、Timerクラスをtオブジェクトで、new演算子でインスタンス作成をしている なのでtオブジェクトでTimerクラスを使うことになり、 t.schedule(new RenderTask(), 0, 16); ここで、tオブジェクトでscheduleメソッドを使っているが 引数でnew演算子を使って、さらにインスタンス作成をしている class RenderTask extends TimerTask{ @Override public void run() { } } その内容がこのコードである。 これがJavaのプログラムというものだ その基礎が「String d = new String();」になるわけだが、 こんな基礎でつまづくようでは、Javaプログラミングを理解するなど無理だと思うわ
Swingを使うときはthreadを使っちゃいけないしTimerつかってるから、ちゃんとしてるね
651 :
仕様書無しさん :2013/08/09(金) 09:19:34.39
>>646 >>648 >>649 d = "ABC";
こう書けば、dオブジェクトのStringクラスに"ABC"が代入されるのでしょ?
それの説明になってないよ。
653 :
仕様書無しさん :2013/08/09(金) 09:27:04.53
>>649 >Timer t = new Timer();
>t.schedule(new RenderTask(), 0, 16);
tオブジェクトのscheduleメソッドを呼び出してるけど、
String d = new String();
d = "ABC";
と書いたときはdオブジェクトのメソッドは呼ばれないよね。
もし文字列を扱うときに同じことをやりたいのなら、可変オブジェクトである
StringBuilderなどを使って
StringBuilder d = new StringBuilder();
d.append("ABC");
こういうふうにしないといけないよね。
教訓としていうが、手を動かさない奴、実行に移さない奴はいつまでたってもにわかだぞ。
>>653 あのさ、d="ABC"ってなったあとのnew String()オブジェクトはどうなるとおもう?
答え言っちゃうとさ。ガベコレ行きだ。
お前も社会からガベコレされないように注意な。
656 :
仕様書無しさん :2013/08/09(金) 09:49:08.08
>>655 うん、new String()はどこからも参照されなくなるから、そうなるね。
>637 :仕様書無しさん:2013/08/09(金) 00:24:54.36
>d = "ABC";
>だから、こう書けばdオブジェクトのStringクラスに"ABC"を代入するということ
これは間違いだよね。
さすがに過去ログ嫁状態になってきた
このスレの573からを見て吹いた人は、就職するか訓練上級コース 笑えない人は初級コースをお勧めします
573からを見て吹ける人というのは、他人の苦しい罵り合いを見て 幸せを感じれる心の持ち主はプログラマー向きという意味でしょうか?
>>656 もっと分かり易く言う
String d = new String();
d = "ABC";
このプログラムで使われているdは変数ではなく
オブジェクトだと考えてください
String d = new String();
そして、このようにインスタンス作成をした場合
dオブジェクトにStringクラスの能力が備わるわけです
dの中にStringクラスが入ってる
dの中にStringクラスが入ってる
dの中にStringクラスが入ってる
d = "ABC";
↑なのでこのdは、変数ではなくオブジェクトであり
このオブジェクトの中にStringクラスが入ってるのよ
Stringクラスしか入ってないと言えば分かり易いかな?
System.out.println(c == d);
つまり、この最後のコードは、
c変数の値は、dオブジェクトの値と同じですか?と質問をしてるのです
d変数ではなく
>>659 苦しい思いをして、ああ、俺もこんな時代があったなぁという意味で吹けるひとはプログラマ向きです。
馬鹿かこいつはとおもって吹ける人はににちゃんねらです。
あと、プログラミング言語の基礎の基礎になりますが、 d = "ABC"; ここに書いている「=」は、代入演算子と言います。 「代入演算子は、変数に値を入れるもの」とだけ理解してる人もいますが、 正しくは、 1.左辺の内容を読み 2.右辺の内容を読む 3.右辺のものを左辺に代入する という働きをします。 その「1.左辺の内容を読み」の時に、 まずは、dオブジェクトの内容を読みに行くのです。 すると、そこにStringクラスを発見! さらに、そのStringクラスには、さらに色んなメソッドが書かれていて、そこまで読みに行く そして「dは、そういうものなのだな」ということを知る 次に、「2.右辺の内容を読む」の時に、右辺は"ABC"であることを知る ちなみ「"」←これも演算子の1つです そして、最後に「3.右辺のものを左辺に代入する」という働きにより、 dの中のStringクラスのreturnに"ABC"を入れる ここまで言えばあとは解かるかな?
プリミティブ型に対しての=演算子は値の代入。 クラス型に対しての=演算子はオブジェクトの参照先の代入。 です "は演算子ではありません。
664 :
662 :2013/08/09(金) 11:41:46.69
>そして、最後に「3.右辺のものを左辺に代入する」という働きにより、 >dの中のStringクラスのreturnに"ABC"を入れる あと、最後のこれは"ABC"をそのまま入れることは出来ないから、 「A」と「B」と「C」に分解されて、 1文字が何バイトなのかも調べて トータル何バイトなのかも計算して 配列変数に1文字ずつ代入されていく そういうプログラムが、Stringクラスの中に入ってるのです そのStringクラスに使う部品は、Stringクラスのフィールドで用意されています だが、普通は、ここまで深いところまで考えないで String d = new String(); d = "ABC"; こう書いていたら、Stringクラスでdオブジェクトをインスタンス作成して そのdオブジェクトのStringクラスにABCを入れてるんだな。と理解してちょうだいよ。
> ちなみ「"」←これも演算子の1つです > ちなみ「"」←これも演算子の1つです > ちなみ「"」←これも演算子の1つです > ちなみ「"」←これも演算子の1つです くっそワロタ 念のため聞いておくけどJavaの話だよね?
その理解が間違ってるとゆーとるに もう一度一通り読み直せ阿呆
667 :
仕様書無しさん :2013/08/09(金) 12:26:13.56
>>664 その説明が真であると仮定する。
public class Test {
public static void main(String[] args) {
Value a = new Value();
}
}
class Value {
private final int value;
Value() {
this.value = 0;
}
}
こう書いたらaはValueオブジェクト。
Value a = new Value();
の下に
a = 1;
と書いたらaオブジェクトのvalueフィールドに1が入るはずだ。
しかし、コンパイルエラーになる。
なので仮定は誤りだってことになるよ。
>>663 >"は演算子ではありません。
ええ、そうでしたねw
「"」の名称をど忘れしたので
とっさに演算子と呼んでしまいました。
何という名称でしたかね?
ちなみに先頭に「"」を付けているから
Stringクラスが文字列であることを理解して
「"」で閉じるまでの内容を扱うことになります
>>667 いやいやw
そのValueクラスのコンストラクタに
returnを入れてないじゃないですか・・・。
returnを入れなきゃ返しようがありませんよw
671 :
仕様書無しさん :2013/08/09(金) 12:50:56.97
>>669 Stringクラスのコンストラクタにもreturnはないよ。
どう書けばいいと思ってるの?ここに動作するコード貼ってもらえる?
Ideone.com | Online IDE & Debugging Tool >> C/C++, Java, PHP, Python, Perl and 40+ compilers and interpreters
http://ideone.com/
672 :
573 :2013/08/09(金) 13:01:12.89
>>671 上記のサイト非常に参考になります
机上じゃなく実際うごかしたほうがいいですね。
ちなみに573のコードを動かすときは1行目のpublicをとってくださいね。>みなさま
673 :
573 :2013/08/09(金) 13:08:28.59
>>671 じゃあ、もういいよ
あんたが正解で、俺が間違ってるってことで身を引くことにします
俺もこれから職業訓練を受けて
これからJavaを学ぼうとしている人間なので、
これ以上の言及はしないことにします
何コイツ マジうぜえんだけど ひとの言うことを聞く気がねえなら最初から口出すな 荒らしまくって窮したら初心者だから〜って冗談は顔だけにしろハゲ
676 :
573 :2013/08/09(金) 13:21:33.91
>>674 頑張ってください。職業訓練中の私も応援します。
意味不明 学びたてなら自己流の理解に凝り固まるのはやめるべきだし 他の人が明らかに間違っていると指摘しているならなおさら それを理解してみようとしてみるべきじゃないのか?
678 :
674 :2013/08/09(金) 13:34:40.33
>>676 ありがとう。
お互い、職業訓練を頑張りましょう
だが、一言だけ言わせて頂きますが
職業訓練では俺はC言語もC++もJavaも
何もかも知らない生徒を演じて授業を受けることにします
その理由は、1つは、そんなところで良い顔すること自体が下らないと思っているからです
なので、知ってても黙って授業を聞くことにします
そして、もう1つは独学でJavaを学んだという
不確かな先入観をリセットしてゼロからJavaを学び直すためです
「不確かな先入観」どころか自己流の明らかに謝った解釈を他人に押しつけてたお前が言うなと
一体こいつはCやC++の何を知っているというのだろう…
パソコンスキルには自信があります!! なにができるの? ワードエクセルです! マクロは? すいませんマクロって何でしょうか
682 :
573 :2013/08/09(金) 13:51:24.28
>>678 そんなに演技をしなくても、自然体でいけばいいとおもいます。
いままでの経験を生かして、空いた時間を勉強に割けばいいとおもいますよ。
そして、職業訓練で得たですが、自分を過信するな、人も過信するな。
コードが真実。
これに尽きると思います。
683 :
仕様書無しさん :2013/08/09(金) 13:52:50.19
JavaのStringが特殊だとまだわかってねえんだろうな
つか何なのこの自作自演での初心者アピールは
686 :
674 :2013/08/09(金) 13:59:17.45
>>681 そうですね
ワードを少しだけ使えるぐらいの生徒を演じることにしてみようかな?
回りの他人からの見てくれなんてどうでもいい、
「あいつはただの初心者」と思われていた方が気が楽
すでに知ってても初めて聞いて理解したような生徒を演じることにするよw
だが、そのうち、俺の本当のレベルに授業内容が追い付くだろうから
そこから本気を出してJavaを学ぶことにしよう
授業受ける前からJavaを知ってるからって
それを自慢しているような奴ってウザイじゃないっすか?
だから、俺はその逆を行く、わざと初心者を演じる
687 :
仕様書無しさん :2013/08/09(金) 14:00:31.74
>>678 演じるのなら実際には知っているという事実がないといけないでしょうに。
本当に何も知らないのに知らないふりをするというのはただのウソ。
>>684 String型が特殊な型ということまでは知ってるが、
実際のところStringの中身がどうなっているかまでは知らないよ
全て俺の想像なのさw
だが、new演算子を使ってるんだからインスタンス作成をしているということは分かる
ということは、「コンストラクタを読みに行ってるんだろうな」ということも分かる
だが、そこから先は知らない
public class StringObj { public static void main(String[] args) { String[] a = {"DEF", "ABC"}; String b = "ABC"; String c = "A" + "B" + "C"; String d = new String(); d = "ABC"; System.out.println(a[1] == b); System.out.println(a[1] == c); System.out.println(c == d); } } 実のところ、俺はこのプログラムを最初に見た時に、 動くかどうかも疑問に感じていたんだ dの型名を宣言していないからね。 だが、これで「trueが表示される」と出題者が言っていたから、 「へぇー、これで動くんだ・・・。」と思って、あとは、俺の勝手な想像で語っていただけです
690 :
573 :2013/08/09(金) 14:17:52.97
>>689 3ヶ月javaの勉強をした結果、こういう知識がついたのです。
だいじょうぶ。ちゃんと学べばここまで到達できます。
はぁ?
> 回りの他人からの見てくれなんてどうでもいい、
> 「あいつはただの初心者」と思われていた方が気が楽
> すでに知ってても初めて聞いて理解したような生徒を演じることにするよw
こういう生徒って、自信があるせいで最初ナメてかかって授業を聞く。
周りの人たちがウンウンうなって、授業にギリギリ追いついてる中、余裕かましてる。
基本をろくに聞かず、後半で自分のペースに持ち込んでブーストかまそうって寸法。
え?今の話、俺全部わかってるよ、もういいよハイ次行って って常に余裕かましてるから、
周りの生徒からも距離を置かれてしまう。
後半の応用授業で、発想力や、ひらめきが問われるエリアに突入していく。
元飲食関係の店員とか畑違いのプログラミング初見の人たちに
ことごとく抜かれ、俺のレベルってこんなもんだったのか・・・と自尊心ズタズタにされる。
いまさら質問しようにも、前半で質問しあえる友達を作っていなかったから、
自由課題を与えられても一人で悩むしか無く、問題解決力もガタ落ち、
出席率も落ちていき、やめてくパターンが大半ね
上で出てたけど、下手な知識よりも
>>580 の2が、ものすごい重要ってこと
> だが、そのうち、俺の本当のレベルに授業内容が追い付くだろうから
> そこから本気を出してJavaを学ぶことにしよう
自分で今まで本気出せなかったから訓練に頼った って動機を忘れてはならない。
もうちょっと簡単に論破できるが
String d = new String();
String e = d;
d = "ABC";
さて、この時点でdとeを表示させるとどうなるでしょうか?
>>615 の言い分だと「dオブジェクト」の中身は"ABC"になっていて
eはdと同じだから両方"ABC"になるんだろうなw
(実際はdは"ABC"でeは空文字列になる)
>>693 君は物事をネガティブに考える傾向があります
>すでに知ってても初めて聞いて理解したような生徒を演じることにするよw
というのはすでに知ってても
その知識をゼロにして初心に帰って
回りの生徒と同じように講師の説明を真剣に聞くということ
>だが、そのうち、俺の本当のレベルに授業内容が追い付くだろうから
>そこから本気を出してJavaを学ぶことにしよう
これは、そこから先が俺の知らないことだから
その先のことを知りたいということだよ
>後半の応用授業で、発想力や、ひらめきが問われるエリアに突入していく。
発想力やひらめきに関しては、すでに披露してるではないか、
>>573 のソースコードを初めて見ただけで、
つまり、あそこがああなって、こうなって・・・。と発想力を発揮して
今の自分が持っている能力だけで、ここまで解いて「閃き」を起こして理解したじゃないか
だが、その解釈は俺の勝手な不確かなものでしかないので、
それをこれから職業訓練を受けて、本当の真実を解き明かそうとしているわけだよ
だから、途中で言及を止めておいたんだ
解き明かすも何もすでに答えは一杯提示されてるじゃないか… それを理解できる頭があるかないかだけで…
>>693 >いまさら質問しようにも、前半で質問しあえる友達を作っていなかったから、
いや、だから、最初はJavaの基礎を知ってても
初めて聞く初心者を演じるということなので、
知ってても「さっきの授業難しかったね?分かった?」という風に回りの生徒に話し掛けるということだよ
で、もし、本当に悩んでいる生徒がいたら
上から目線で教えるのではなく
本当は知ってるくせに
「多分、こういうことなんじゃない?」と同じ目線に降りて語らうというわけだよww
俺、そういうの得意ですw
能ある鷹は爪を隠すってやつ?w
698 :
615 :2013/08/09(金) 15:46:30.76
>>694 String d = new String();
d = "ABC";
俺もこれを最初に見た時は「え?」って思ったよ
確かに「String d = new String();」ここでインスタンス作成をしているけど、
それがなぜ、下の「d = "ABC";」のdがString型になるの?と
俺の中では、どう考えてもコンパイルエラーになるとしか考えれなかった
だが、出題者がこれで「trueが表示される」と言っていたから、
それを信じて、「こういう使い方も出来るのか・・・」と勉強にさせてもらっただけです
答えさえ解かれば、その過程を解くのも簡単じゃないですか?
だって、インスタンス作成をしているということは、コンストラクタを呼び出しているということになるんだし
だったら、dがString型になるというのも説明が付く
ただ、俺はこれを見るまで
こういう使い方が出来ることは知らなかったのは事実です
>>698 その訳の分からない言い訳は聞きあきた
>>694 のコードでeの値を表示させたら何になる?
最後の行を変えて
String d = new String();
String e = d;
e = "ABC";
この場合もdの値は"ABC"になると言える?
700 :
仕様書無しさん :2013/08/09(金) 16:08:34.47
>>698 コンストラクタが呼ばれるからdがString型になるわけではないよ。
String dとdが宣言されるからdがString型になる。
"ABC"は文字列リテラル。文字列リテラルはStringオブジェクトへの参照。
new String()と"ABC"とは別のオブジェクトへの参照。
この問題の狙い オブジェクト同士を==で評価するとどうなるか コンスタントプールを理解しているか。 参照先を変えるとどうなるか。 この3点だけなんだけどね。 newとかそういうのはどうでもいい
>>701 >newとかそういうのはどうでもいい
いやいやw
どうでもいいことはないだろうww
String d = new String();
こう書いている以上、Stringクラスでdオブジェクトをインスタンス作成していることには変わらない
d = "ABC";
で、こう書いているんだからdオブジェクトの中にあるStringクラスを使っていることも変わらない
あ・・・なるほど、変数の宣言の裏側が分かったような気がする・・・。
なるほど。
だから、「int a;」このように変数宣言をすれば
それ以降は「a = 10;」という風に書いても値が代入されるわけか
変数の宣言の裏側までじっくり考えたことはなかったな。
よし、わかったよ。
「String d = new String();」このインスタンス作成をC言語に直すと「String d;」こういうことだね?
「int a = new int();」このように組んだことが、「int a;」という宣言と同じ意味になるということか。
いや、ちょっと待て。 「int a;」のC言語のint型の変数宣言がクラスを使ってるとは考えられない、 C言語でクラスが使えるようになったのは、C++が誕生してからだ なので、「int a;」この変数の宣言は、アセンブラで組まれたintを呼び出しているということ もう少しで変な迷宮入り解釈に入ってしまうところだったw 入口辺りで気付いてよかったよ
もう少し頭柔らかくせえや 間違いまくりだから
>>703 JavaはCと違ってポインタだと言ってるのに
String d = new String();
というのはStringクラスのオブジェクトを作成してメモリ上に置いて変数dはその位置を指し示している
d = "ABC";
によって変数dはメモリ上に置いてある(上記されてるコンスタントプールの事ね)を指し示す事になり
さっき作成されたStringクラスのオブジェクトはどこからも参照されなくなってゴミ箱入り(GCの対象となる)
> 「String d = new String();」このインスタンス作成をC言語に直すと「String d;」こういうことだね?
違う
敢えて置き換えるなら
String x;
String * d = &x;
って感じ?
String d = new String(); d = "ABC"; だったら、これをどう読み解く? String d; d = "ABC"; もし、このように書いてあれば、それほど悩むことはない String型でd変数を宣言して、d変数に"ABC"を代入しているだけだ String d = new String(); だが、こう書くと、インスタンス作成をしているが 初期化という意味にもなる d = "ABC"; だったら、これも説明が付く ・・・・OK。何となくわかった! String d = new String(); これは、誰が何と言おうとインスタンス作成である そしてインスタンス作成をするとコンストラクタを読みに行く、そしてコンストラクタとは初期化を意味する つまり、dはStringクラスで初期化されたということで、 これは、型名の初期化を意味するわけだな 型名の初期化なんて聞いたことなかったよ 変数の初期化なら解かるが
>String d = new String(); >d = "ABC"; >だったら、これをどう読み解く? 1行目のnewが無駄にインスタンス作成しているだけ String d; d = "ABC"; でも同じ
>>706 ああ、なるほど。
おかげで謎は全て解けました。
String d = new String();
これは確かにインスタンス作成であるが、
それと同時に初期化も意味する
つまり、この時点でString型のd変数が生成されたということ
d = "ABC";
で、これはd変数の初期化が終わったメモリ内のString型領域に
"ABC"を代入しただけなのか
String d = new String();
だったら、なぜ、わざわざインスタンス作成なんて
する必要があるのだろうか??
String d ="A";
d = "ABC"
こう書きゃいいのに・・・
もしかして、わざと混乱させるためのひっかけ問題なのか?
だからJavaのStringはそういう特性があるっつー基礎中の基礎の話 そこを理解せずに100レス以上もgdgd独自理論を並べ立てて 人の言うことを聞かなかった自分の愚かさを恥じて死ね
まだ間違ってるけど少し理解に近づいてきたな。 これだけのことを理解するのに何十レス使ってんだよ。 ぶっちゃけ君、頭悪いよ。職業訓練校に入学したら、 周りの未経験者にどんどん抜かされると思うけどまあがんばって。
いつまでガベージコレクションされるオブジェクトに未練があるんだよw
>>706 >JavaはCと違ってポインタだと言ってるのに
いや、だから俺はJavaは知らないって言ってるでしょうが
知らないから職業訓練を受けてJavaを学びに行くんだよ
知ってたら職業訓練など受けないでしょ?
あと、そんなこといつ言ったんだよ
引っ掛け問題にまんまと引っかかってキーってなってるんだよ。 そっとしといてやろうやwww
>>713 >いや、だから俺はJavaは知らないって言ってるでしょうが
>>598 俺はC言語やC++をマスターしてる
Javaもほぼ理解してる
なのでイチからJavaを学ぶような人と一緒にしてほしくないな
他ジャンルの仕事を基本にしてプログラミングも出来るようになったやつ VS プログラミングしか能がない癖してセンスもなく、俺ルールで学習しないやつ どっちに伸びしろがあるかは明白だわな
引っかけ問題とか以前の話 要はわからないなら勝手に妄想してわかったつもりにならず 基礎をきちんと学んで理解しておけって話
"が演算子とか言い張るレベルでC++はマスター(キリッ)とか冗談は顔だけにしろマジで
>>713 ここまで付き合った事だしついでに
>いや、だから俺はJavaは知らないって言ってるでしょうが
その「Javaを知らない人」がなぜ「Javaを知っている人」が散々「違う」と言ってるのに間違った持論を展開できるのか
その神経に呆れているんだが
>>711 ありがとう
まだ「Javaはポインタ」というワードに、引っかかっているが
そういうのも含めて職業訓練で教わってくるよ
多分、こういうのは一度、ちゃんと説明をしてもらえれば
一発で理解できることだと思う
たまたま、俺が読んだJavaの本に、
String型について詳しく説明してなかっただけなんだ
説明されてないことを理解できる人なんてエスパー
>720 まさにコレ # JavaのStringの話はこの際どうでもいい 挙げ句初心者のふりして教わってきます(笑)とか何言ってんだこのアホっていう 叩かれている今、低姿勢で教わって学習しとけよ
> "が演算子 久しぶりに声出して笑ったわ
>>720 >その「Javaを知らない人」がなぜ「Javaを知っている人」が散々「違う」と言ってるのに間違った持論を展開できるのか
この質問の回答であるなら
「Javaを知らない人」と「Javaを知ってる人」の区別は
他人からは判断が出来ないからでしょう
AさんもBさんも自分は知ってると持って発言しているわけだし
だから、こういうのは一度、ちゃんとした
信頼できる人に教えてもらえれば一発なんだよ
725 :
573 :2013/08/09(金) 17:43:07.48
入校して3ヶ月のJava講習生だけど、私はどんなもんかな? 3ヶ月ならこのぐらいの理解度でいい?まだ足りない?
>俺はC言語やC++をマスターしてる こんなこと言っちゃう時点で解ってないよ。
String d = new String(); d = "ABC"; だが、俺はまだこれを完全に理解したわけではないよ まだ、何かが引っかかってる やる必要のないインスタンス作成をここではやってるんだし、 これには何か意味が含まれていると思う つまり、Stringは型名ではだが クラスでもあるということを教えようとしているのではないか?と だから、インスタンス作成が出来るのです。というような 普通のint型とかfloat型であれば、こういうは組めないと思う
問題自体に意味が含まれていて、 それを気付かせようとしているように 俺の目には映った 学校などで出される問題というものは、 本来の「問題を解く」というものの他に、 その問題自体に何か意味が含まれているものです つまり、問題に正解しても、そこに気付かなければ意味がないということ String d = new String(); d = "ABC"; それが、多分、これなんだと思う 「なぜ、String型だけインスタンス作成が出来るのですか?」という 気付きの問題のような気がします trueが表示されるかどうかは、ただの飾りでね
729 :
573 :2013/08/09(金) 17:48:50.17
>>727 じゃあ、出題者の私がいいます。
new String()は全く意味がないです。dの参照先がかわるので、ガベージコレクタに回収されておわり。
引っ掛け問題です。
あと、もうひとつ。
a[1] == bの評価がtrueになるという違和感は全く感じられませんでしたか?
>>727 >これには何か意味が含まれていると思う
含まれてねえよハゲ
出題した人の意図がどうあれ、プログラムとしてその初期化に意味がないっつってんの
プログラムを仕事にするってことは、これよりずっと巨大で複雑なひっかけ問題を
相手にしなくちゃならないのに、お前どうするつもりだよw
731 :
仕様書無しさん :2013/08/09(金) 17:54:14.29
>>728 String d = new String();
これは変数の宣言と値の代入を同じ行でやってるだけだよ。
String d;
d = new String();
これと同じだよ。
C言語はマスターしてるのでしょ。動的メモリの確保はやったことないの?
#include <stdio.h>
#include <stdlib.h>
struct String {
char *value;
};
int main() {
struct String *d = malloc(sizeof(struct String));
d->value = "";
free(d);
return 0;
}
struct String *d = malloc(sizeof(struct String));
は
struct String *d;
d = malloc(sizeof(struct String));
と同じでしょ。
>>729 なるほど、やはり引っ掛け問題なのか、
で、その引っ掛けにまんまと引っ掛けられたのが俺と言うわけかww
これは傑作だなw
だけど、おかげですごく勉強になったよ
まだ授業を受ける前にね
>a[1] == bの評価がtrueになるという違和感は全く感じられませんでしたか?
え?どうしてですか?
a配列変数の配列番号1に「ABC」を代入していて
bは直接「ABC」を入れてるのですから、trueになると思うのですが
普通の人が2,3レスで理解できることに100レスも使って それでもなお理解できないなんて、信じられないレベルの無能
734 :
573 :2013/08/09(金) 18:08:45.18
>>732 もう一問いっときます
public class StrTest {
public static void main(String[] args) {
String a = new String("ABC");
String b = new String("ABC");
String c = "ABC";
String d = "ABC";
System.out.println(a == b);
System.out.println(c == d);
System.out.println(a == c);
}
}
これはの結果はどう表示されますか?
ああ、なるほど。 普通の値ではなく、文字列を扱ってるところに何か引っかかりますね。 String b = "ABC"; こんな風に書いても、このABCという文字列が そのままメモリに収められるわけではない CPUのレジスタを経由してメモリに移送される時に、 もっと分解されてメモリに運ばれてポインタを返しているはず HDD ⇒ CPU ⇒ メモリ データと言うのはこういう流れで、HDDからメモリに値が運ばれることになる メモリ ⇒ CPU ⇒ メモリ ⇒ 解放(データ消滅) その後は、メモリ内でポインタを使ってデータを引っこ抜いたりして 計算を行っている
なんでこういう馬鹿って 妄想の産物でしかない自己流の解釈を 何の裏付けもなく何の検証もせずそれが正しいと思い込めるんだろう プログラミングするには明らかに頭かたすぎるし 不思議で仕方ない
>>734 やっぱ、そういう問題に行く付くよね。
インスタンス作成で引数を入れるとか・・。
で、扱ってるのは文字列なわけで、
false
true
false
答えはこうですね?
738 :
573 :2013/08/09(金) 18:21:09.69
正解。 ではなぜ真ん中がtrueになるかについては疑問はないですか?
>>734 String a = new String("ABC");
String b = new String("ABC");
String c = "ABC";
String d = "ABC";
これは一見するとa〜dの全てにABCが入っているように見える
事実、ABCを入れているわけですが、
形式が違うのです
String a = new String("ABC");
String b = new String("ABC");
この2つは同じに見えるが実は同じではない
値は同じだけね
String c = "ABC";
String d = "ABC";
で、これとこれだけ一緒です
742 :
573 :2013/08/09(金) 18:36:38.99
>>741 すごく重要なことなので、勉強しましょう。
チーム作成でこんなことしたら怒られますよ。
他の人はどうなのよ 別の人の意見も聞きたいですね どうぞ ↓↓↓
744 :
573 :2013/08/09(金) 18:50:54.77
740さんは給付金目当てでなければ作品をもって就職活動したほうが幸せになれると思います。。。
740は普通に受講資格無し
746 :
573 :2013/08/09(金) 19:03:37.38
740さんには言っても分かりきってるわといわれそうですが、JFrameに直接描画だけはしてはいけません。 まあ、常識ですよね。
C++やJavaわかってるとかのビッグマウスは基本的にはやっちゃアカンわー。 言うことが信用できない相手と共同作業なんて、無理無理かたつむりよ。
文字列定数に関してはメモリ節約のため同じ物は一ヶ所に格納される そのためcとdは同じ物を指す aとbのコンストラクタに渡されるのも同じメモリを指すがそれを「初期値」とした別々のオブジェクトになるため指すメモリは違う よって==で比較した場合はcとdのみtrue
牛歩戦術に涙目や
授業ストッパーがいると悲惨な結果になるよ
実践面は平日夜か休みの日に家でやればいいだろうが 雇用保険目当ての奴はやらないならやらないでほっとけばいいし 理論面こそ講習でやってくれよな
>>740 は過去に職業訓練を途中で投げ出した人間の屑
「ポナルポ」でググれば過去の悪行がわんさか出てくる
754 :
仕様書無しさん :2013/08/09(金) 20:02:35.22
>>753 プログラムに関しては頑張ってるじゃないか。なかなかできることじゃないよ。
俺はこういうやつけっこう好きだ。
出る杭を打ち続けるのが日本流
じゃあその本人に何をどう頑張っているのか具体的に教えて応援してあげようよ
757 :
仕様書無しさん :2013/08/09(金) 20:15:21.90
すごい自演臭
そういや明日からか おまいらもコミケ行くのか?
>>757 オールインワンで日本語化してるんだね
おいらは英語環境作ってから日本語化したわ
>>757 うん、そうだね
でも、朝から晩まで時間をもて余して暇な奴が作ったにしてはお粗末だらけな出来映えだよね
762 :
743 :2013/08/09(金) 20:49:42.71
戻ってきたら変な奴が沸いてるので
荒らしが過ぎ去るまで、しばらく身を引くことにします
あと、
>>740 ←これは発言は俺ではありません
日本語不自由だなぁ
ID非表示のスレで鳥も付けずに散々自作自演しまくった奴が 正体ばらされて都合が悪くなるや別人の成りすましだの暫く消えるだのそんな逃げ文句は通用しないだろ
765 :
573 :2013/08/09(金) 21:11:20.90
鳥はつけてないが、573は今のところ騙られてないよ
ちょっとテストしてみます
あ、Okみたい。
そのエネルギーを本来の活動に回せやw
769 :
764 :2013/08/09(金) 21:23:01.17
>>573 いや自分が言っているのはあなたじゃなくて
昨日から現れて間違いだらけの知ったかでスレを荒らしてる>581のことね
いまさら740は自分じゃないですとか言い訳したって、もう遅いよ。 >JET++ ?@JET_JAPAN 8月3日 >きっとオブジェクトには俺の知らない技術が、もっと詰まっているはず。 >だが、このままC++言語でオブジェクトを追究していくことは苦しいと感じたため、 >オブジェクトを理解するためにJavaによるゲームプログラミングに挑戦することにした。 >というわけです。 >まあ、ちょうど職業訓練でもJavaを学ぶことになりましたし、ちょうどいいかな?と。 ツイッターで自分でエサまいといて、そらーねーべ ってかそもそも、同人のゲームを作るために職業訓練って、 受講資格無し、退校対象だろ。これは開校前に通報レベル。 同じ訓練校の生徒で、入校後にこいつを特定できたら通報しろ。 どうせ、ベラベラ喋るからすぐバレる。
771 :
仕様書無しさん :2013/08/09(金) 21:32:55.06
いかにもプログラマらしい争い 本質的に鉄オタの争いと相違ない 余所やって貰えないかね いい大人がみっともないと少しでも思うのなら
772 :
仕様書無しさん :2013/08/09(金) 21:38:35.22
>>770 ひどい差別だな。お前のようなやつがいじめをやらかすのだろうな。
>>771 それは無理ってものじゃない?
荒らしに荒らすなと言ったところでおとなしく退散するはずもなく
当の本人が居心地が良くて居座っては書き込みする最中に他所でやれとかスルーしろと言っても
相手をする人間がいる以上それもまた無理な話だよ
775 :
仕様書無しさん :2013/08/09(金) 21:57:35.11
>>名無しさん いや、だからいかにも世俗と剥離しているプログラマらしいなぁと 鉄オタそっくりなんだよな 普通の人なら気にもしない所に妙に拘るし、リアルじゃない世界での攻撃性が半端ない リアル世界ではウサギかハムスターなのに
776 :
仕様書無しさん :2013/08/09(金) 21:59:14.03
>>773 社会学における差別というのは特定の集団に属する個人を除外する行為のこと。
職業訓練で技術や知識を身につけて何をやりたいかは個人の自由だ。
職業訓練に参加するという特定の集団の中の
>>770 という個人を
お前が気に入らないからという理由のみでみなに排斥することを呼びかけている。
ふざけたことやってんなよ。
ゲームプログラミングっていろんな技術の総合知識がいるから勉強の題材にはもってこいなんだよね。 だからものを創るのはいいことだとおもうよ。
778 :
仕様書無しさん :2013/08/09(金) 22:04:20.46
740は、はしゃぎすぎて、とんでもないミスをやらかした 順調にいけば Javaって難しいっすねー でもボク、他言語でゲーム作れるんですよ 生徒たち「えーっすっごーい!」 いやじつは、習ったことをまとめるこんなホムペ作ってまして・・・ って入校後に自慢するつもりだったのに、証拠いろいろ残してるから、 ホムペ紹介したら即退校w もうこれ以上自慢できなくて、喋ることも出来なくて、 ストレス溜まるだろうなー でも自業自得だなこれは。
まあ自営始めるのも雇用保険の考え方では就職なんだけどね
公共職業訓練とは? ハローワークで求職を申し込みした方を対象に、職業訓練学校において、 再就職を支援することを目的として就職に必要な技能や知識を身に 付けるための訓練を受けることです。
782 :
仕様書無しさん :2013/08/09(金) 22:22:32.06
>>779 俺はお前のほうがやばいのじゃないかと思ってる。
>>747 ,
>>770 はどちらもお前だろ。引用マークが同じで技術的なことではなくて、
人格否定を行っている。名誉を毀損したあげくに特定して退校させろと呼びかけている。
職業訓練は厚労省の所掌だが、厚労省は社会的排除を解決する責任を負うところでもある。
俺がお前を通報しとこうか。
>>777 悪いけどブログは全て閉鎖したよ
だが、ゲームプログラミングスキルは、頭ン中にあるので
いつでもゲーム開発は再開出来る
俺は趣味として同人ゲームでも開発することが目標だったりするのだが
今は職業訓練が最優先なので趣味はしばらくお預けにします
半年後にJavaプログラマーの職業に就けたら、
仕事に合間に同人ゲーム開発とかやってると思う
それだけ、俺はJavaプログラマーの職業に就くことが本気なのだよ
俺も絶対に半年後にJavaプログラマーになってみせるので
あんたも頑張ってくれ。
検討を祈る
検討した結果、今回はお断りいたします。
よし、これにて、授業中に「これをゲームに応用する場合どうすれば」 という授業ストッパーがいなくなり、一見落着。
>>784 そうか。それは残念。
でも、まだ3か月残ってるんでしょ?
出来ればプログラマーになることを頑張ってほしいですね
まあ、本人がやる気を失って嫌がってるなら
無理に頑張れなどと無責任なことは言いませんが
787 :
仕様書無しさん :2013/08/09(金) 22:42:36.23
あーあ。
>>779 の差別的発言によってブログを閉鎖せざるを得なくなったという
被害が成立してしまったから、
>>779 がいま職業訓練を受講中の身なら
>>779 は反社会的行為を理由にいつ退校を言い渡されてもおかしくなくなった。
>>783 だったらこのスレッドからも潔く撤退して
めでたくプログラマーになるまで半年間現れないでくれよな
はいはい
>>783 腕が錆びんように、プログラムはするよ。私の目標は、今は言えないけど社会に貢献する形でなにかだしたい。
目標を持って突っ走ろう。
・このスレに今後も居座り続ける
・閉鎖したブログはすぐに再開
・職業訓練は最後まで続かないで終る
とりあえず
>>783 に対する皆の予想はこんな感じでいいかな?
792 :
仕様書無しさん :2013/08/09(金) 23:26:12.09
カスしか居ないスレ プログラマーという人種が良く分かる
>>791 正解。8年間、同じことをしてる。
883 NAME:タクト ◆A9GGz3zJ4U MAIL:sage DATE:2005/05/12(木) 23:03:57 ID:XmnPMYRS
そんなお前の性格が許せないのだ!!
バカ野郎!!
ちょっとは自分達のしたことを反省しろ!!
俺を荒らしに仕立て上げ
俺のサイトもぶち壊しにし閉鎖にもって行き。
ウィルスメールは送られまくる。
全て、退治したけど・・・。
目には目を
歯には歯を!!
俺はあの時、謝った!!
何度も何度も何度も何度も謝った!!!!
だが。お前らの中に俺に謝った奴は
ただの一人もいない!!
だからパソコン技術を使って無理やりにでも謝らせてやる!!
マシンを壊してやる!!
どれヲタのバカ野郎ーーーーーーーーーーーーーーーーーー!!
俺のおジャ魔女を返せ!!!!!!!!!
886 NAME:タクト ◆A9GGz3zJ4U MAIL:sage
もう。
今の俺はおジャ魔女を見ても。
憎しみと怒りしか感じない!!!!
ちくしょう!!!!!!!
DATE:2005/05/12(木) 23:06:26 ID:XmnPMYRS
794 :
仕様書無しさん :2013/08/09(金) 23:36:48.31
なんですかこれは?
>>792 まあ、訓練だからそんな凄腕プログラマなんていないよ。
サイコ野郎
797 :
仕様書無しさん :2013/08/10(土) 00:42:20.74
この中で、パソコン一つ片手に、世界を旅しながら アプリつくったりブログで稼ぐ予定の方いますか? 半年後くらいに出発を考えているのですが 誰か計画にのっかりませんかー?
798 :
仕様書無しさん :2013/08/10(土) 00:45:03.23
乗っかりはしませんが今自己資金どのくらいありますか? 200は無いときついですよ 100でやりましたけど本当に古事記みたいな旅でした
馬鹿無理
800 :
仕様書無しさん :2013/08/10(土) 01:23:03.11
>>798 旅に使う資金は現在の貯金や生活費を削る気はないです
ですので、今のところ、自己資金は0です
無謀だの馬鹿などの罵声は当然です
しかし、お?おもろそうやんけ!って思える人はいないですかねー
801 :
仕様書無しさん :2013/08/10(土) 01:35:22.12
断言しちゃうけど自己資金0は100%不可能 ワーホリでどこかの国で一年働いて金貯めると言うならありだけど それにアンタ他力本願でしょ 何も調べずに他人に乗っかって旅しようとしてない? 世の中そんなに甘くないよ
802 :
仕様書無しさん :2013/08/10(土) 01:57:26.32
資金0で出発するという意味ではないですよ 世界のどこにいてもネット環境があれば仕事ができる それを目標にしませんか?ってことです 固定で働いている人は誘えないし、すでにフリーで 稼いでいる人はもう自分の好きなことやってるし ってことでここで誘ってみてるのです
803 :
仕様書無しさん :2013/08/10(土) 02:01:57.42
それを目標にしてこちらにメリットが何かあるの? あんた一人でやればいいじゃん 一人じゃ出来ない理由でもあるの?
>>802 そんな夢みたいなことを目指したいなら、やってみたら。
理想を追い求めるのは勝手だが、すぐにだめなことがわかる。
ソーホーとか10年前に流行ったな。
地方で電話1本とネット開通させれば仕事取り放題!
けど、こりゃ無理だわってすぐにわかるから。
現実は、IT系で食うならリアルで打ち合わせする必要が山ほどあるし、
IT系の会社は都会に集中だから都会での打ち合わせが必須。
打ち合わせ不要で、決まり切って単価も決まって、自分が欠けても誰も困らず、
誰でも処理できる安い案件をひたすら処理する、いわゆる内職に近い仕事なら可能性はある。
しかし、そういうのだと自分ならではの付加価値が何もないから、
時間に対する対価というところで、本業として食っていけない。
805 :
仕様書無しさん :2013/08/10(土) 02:12:27.88
アフィかFXしか無理だろう んでそんなもんアテにして旅の資金にしようとか言ってるアホは早晩詰む 実際やってみ 親へ電話する電話代は残しとけよ
スレ違い
無理である理由ばかりを考える人間より どうやれば可能なのかを考える人間の方が好きだな それはプログラム開発にも精通していると思う あるシステム開発の案件を頂いたとして 片方は出来ない理由だけを追及して何もやらない もう片方はどうやれば可能であるかだけを追求して手を動かす 後者の方が好感を持てるよ 前者の方は相手にもしたくない というか経営者なら首にしたい
「パソコン片手に世界を旅」は面白い試みだと思う だが、それならこのプランの最終目的を設定したい つまり、どうなれば、この計画が達成されたことになるのかということ 俺は思うのだが、パソコンを手にする本人が パスポートを持って飛行機に乗り込み 本当に世界に旅立つ必要もないと思う つまり、本人は自宅の部屋にいたままで インターネットで世界に出て、他国でプログラミングを使ってその国で稼ぐ 何ドルまで稼ぐのかを設定して、それを達成したら別の国に移って目標金額まで稼ぐ そうやって、世界の主要国を達成できればゴール
>>807 「何もやらない=受注しない」ならそれが何もしないのが正解だろ。
「出来る範囲でやりましたが、できていない部分もあります。」
受注しちゃってこんなこと言ったらそれこそ無駄だし経営的に見たら失格だ。
その昔、エヴァのアスカ芸人がブログを立ち上げて サイコロを振りながら世界を旅して回るという企画の番組があった ああいう企画は無謀にも思うし それをする意味も解からないかも知れないが 人間は、ああいう無謀とも言えるものに挑戦する者を見るとロマンを感じる 「パソコン片手に世界を旅」という計画もそれと同じようなものでしょ 幸い、俺たちはJavaの職業訓練を受けて、これからJavaを学ぶ者たち Javaは、Androidスマートフォンに採用された言語であり スマートフォンは、世界中に普及している つまり、Javaでスマホアプリを開発して行けば、世界で金を稼ぐことも可能 あとFacebookアプリもJavaで開発出来るしFacebookも世界で普及している
もし大人数でやるなら、部隊を編成して一度でやった方が面白いかもしれない 軍隊みたいなものです。 つまり、、アメリカ遠征隊に数名、フランス遠征帯に数名、ロシア遠征帯に数名、 という感じで、各部隊で、どの国を担当するのかを決めて 例えば、アメリカ遠征隊に所属したプログラマーたちは、 アメリカの需要を考えて、何を開発すればドルを稼ぐことが出来るのかを計画して 開発に取り掛かる。 子供を狙うか大人を狙うかが運命の分かれ道でしょう それを各部隊一斉にやれば、短時間で世界制覇が可能でしょう もちろん、各プログラマーは日本の自宅にいながらです インターネットを使えば、そういうことが可能
こんなところで語らないで、またblogでも立ててそこで語れよ。
スレ違いだよ
プログラマーというのは
>>804 のように出来ない理由を思い求めるよりも、
こうやって、どうすれば可能なのかを考える発想力が必要だと思う
先人のプログラマーたちも
そうやって当時の技術では無謀とも思えるものに挑戦して
様々な技術が誕生していったのでしょう
昔の人から見れば、今や当たり前になった携帯電話は
夢のような技術だったんだよ
当時の人間からすれば、鼻で笑うようなものだった
>>804 のように出来るわけないと思った人間も大勢いたことでしょう
今や当たり前になった、壁掛けテレビや液晶テレビも昔は不可能だと思える技術だった
パソコンも、今日のような小型になるなど、昔は考えられない技術だった
俺は
>>802 >世界のどこにいてもネット環境があれば仕事ができる
という発言からヒントを得て
だったら、日本にいながらでも出来るではないか
という発想に繋がったよ
そして、そこを糸口にして、さらに実現可能な糸口を探していく
こういうのが発想力というものではないのかな?と。
発想力なら任せて頂きたい
こういう人間がプログラマー向きじゃないのかい?
>>814 ああ、確かにそうだね
じゃあ、もうやめとく
そう言えば、職業訓練は8月19日から始まりますね 今日は8月10日だから、あと9日間もある さて、皆さんはこの9日間をどうやって過ごしますか? 職業訓練を受けるということは、みんな無職なんだよね なので、何もすることがありませんね・・・ さっき外出してきたら 暑すぎてすぐに家に帰ってきたよw さて、何をして過ごそうか。瞑想でもするかw
旅に行った事も無い人間が世界を旅しながら仕事するとかちゃんちゃら臍茶なんだけど まず日本出てから言えよ
それは違う そうやって段階を踏んで一歩一歩達成していく人もいるが、 突飛なことを実現する人は段階を踏まないものだ 去年俺は1週間に一度ぐらいしか外出ない無職だったが、 自転車で日本一周の旅してきた
821 :
仕様書無しさん :2013/08/10(土) 16:41:04.26
だから何だw 今時世界一周なんて誰でもやってるぞ 俺も去年超手抜きで一周したし 一周中に同じく一周中の日本人5人居た しかも二人は女
「日本出てから言えよ」というほど難しいことではない
なぜ、今頃になってJavaが脚光を浴びたのかと言うと AndroidスマートフォンがJavaを採用したからなんだと思う そして、今やスマホは世界中で大流行 なので、C言語やC++ではなくJavaなんだろうね 職業訓練でJavaを習得した後の就職先を考えてみたのだが、 多分、Androidアプリを開発しているシステム会社に Javaプログラマーとして就職するのが大半ではないかと思う ということは、Androidスマートフォン用のJavaAPIを身に着ける必要がある あと、データベースを扱うことが予想出来るので、 Javaでデータベースを扱う技術も必要 ネットを扱うわけですから、HTMLやCSSなどの技術の習得も必要ということ それら全ての技術を半年で身に付けないといけないので、 Javaだけ習得すればいい、というものではないと思う 俺は元WEBデザイナーなのでHTMLやCSSなら任せてほしいが、 そういうこと言わずに、HTMLやCSSもイチから学ぶことにしよう
俺はこれまで全て独学で孤独で一人で技術を身に着けて来た口だから、 ちゃんとした講師から授業から技術を身に着けれるということが楽しみでならない あと、俺は自分にとって難しければ難しいほど燃える性格をしている 燃えるというか、難し過ぎるものに直面すると嬉しくなってしまうw 「どうやってこの難題を解いてやろうか」とね 本当に職業訓練が楽しみでならないよ だが、目立つことは嫌いし興味はなので、 自分が見に着けた技術で教室でヒーローになることは一切望みません 「技術を身に着ける」 ただそれだけが目的なので、大人しく授業を聞いてると思う 解からないことがあっても質問をして答えを導くということも嫌いなので、 もし理解できないことに直面したら、 自分で調べて解き明かしていくことでしょう 俺、そうやって人に質問して 楽をして身に着けるという心構えも嫌いなんだ
825 :
仕様書無しさん :2013/08/10(土) 17:17:46.29
いかにもプログラマーらしい文章だな 本人は論理的にわかりやすく記述してるつもりでいるが、要点を得ずただダラダラ書き殴ってるだけ 他人には何がいいたいのか全然伝わらない こう言う奴がエニグマ教科書を作る
実績を作ってから、言うのと いうだけで、結局つくらないのでは大違いだ。「ほら何もやらない」で終わる。
連投失礼 >今日は8月10日だから、あと9日間もある >さて、皆さんはこの9日間をどうやって過ごしますか? >職業訓練を受けるということは、みんな無職なんだよね >なので、何もすることがありませんね・・・ 本気で「何もすることがない」言ってますか? 9日間もぼーっとするまえになにか目標をつくって実行はしないのですか? そんな心構えで職業訓練いくとつらいよ。
828 :
仕様書無しさん :2013/08/10(土) 17:40:10.98
>>818 一泊1900円の某地方都市のビジホに5泊
昼は勉強して夜は地元の居酒屋か飲み屋を散策
温泉巡りも2日ばかしやろうと思う
クソ暑い東京じゃ何もする気起こらんわw
JAVA の職業訓練? 初めて聞いたな。そんなのあるんだ。 数年前に JAVA は挫折したが、スマホで需要あるなら、もう一回やってみようかな。 でも、なんとなく C++ をみっちりやったほうがいいような気がするな・・
>>824 お前と飲みにいったら超絶めんどくさそうってのはわかった。
東京だけど、9月開始の一覧を見たら、Java訓練が全く無くなってた。 ソーシャルゲーム作成みたいな付随のやつもない。 先月、偶然ハロワで見つけて、19日スタートで合格して嬉しいわ。 いまの時期ノコノコ行ってたら、ホムペ作成とか、 ウェブデザインとか、そんなんばかりから 選ぶ羽目になってた。 コースの内容って、けっこう波があるんだな。
>>831 多分、教室がいっぱいになってしまったからだろうね
半年経ったら今季の生徒が卒業するから
その時にまた応募すればいいと思う
833 :
仕様書無しさん :2013/08/10(土) 18:13:21.40
>>830 居酒屋で絶対に隣に来て欲しく無い人だなw
まぁこういう人は普段は一言も話さないステルスな存在だからそう実害無いけど
>>830 人に質問して答えを聞くということは嫌いだけど、
人の意見を伺うということは嫌いではないよ
「君はこの問題についてどう思う?」とか
それなら質問をして楽して答えを導くには当たらない
職業訓練は競争というわけではないから、
生徒らとは仲良くしたいですね
だけどいきなり「答えを教えて」なんて言ってくる生徒がいたら
ちょっと相手にしたくないかな?
自分で考えるということをしていないからです
なので、「俺はこう思うけど、君はどう思う?」という質問にしてほしい
アスペルガー臭い
>>827 なぜそのような上から目線で言えるのですか?
私は少なくともあなた達とは違って
すでにC言語とC++をマスターしています
なぜ、会ったこともない人にそこまで言われないといけないのでしょうか
そうやって自分が相手より優れていると思い込むと
社会にでたら痛い思いをしますよ
出てもいない杭が打たれる!
>>827 >本気で「何もすることがない」言ってますか?
>9日間もぼーっとするまえになにか目標をつくって実行はしないのですか?
そういう考え方は解からないでもない、
だから俺はJavaを使ったゲームプログラミングをちょっとやってみることにした
だけど、俺はそれを途中で辞めた
なぜ辞めたのか?
その理由は、もうかなりJavaを知ることが出来たからです
ただ、Javaはさらにもっと奥の技術があると思いますが、
それは「楽しみにとっておく」ことにしたのです
知りたいのにまだ知りたくないという心理です
RPGの終盤で、もうとっく魔王を倒せるレベルなのに
魔王を倒さずにフィールドをウロウロしているようなものですw
エンディングを見たいけど、それを見たらゲームが終わってしまうから
まだクリアしたくないということかな?
839 :
仕様書無しさん :2013/08/10(土) 20:57:14.53
ポエム会場はここですか?
840 :
仕様書無しさん :2013/08/10(土) 21:04:19.12
>>838 FizzBuzz解ける?
1から100まで数字を増やして、数字が3で割り切れればFizzと出力し、
5で割り切れればBuzzと出力し、3でも割り切れず5でも割り切れなければ数字を
出力するってやつ。CでもC++でもJavaでもいいからやってみて。
>>836 では言いましょうか。
私は、C, C++, ASMでwindows 3.1の時代からプロとしてプログラミングをして、基礎はついてます。
しかしそこで止まらずに勉強は継続しています。なぜ基礎を知っているのに勉強を続けるか。それは技術の進化があるから続けるのです。
10年ほどプロとして現場で働いてます。若手に対しても技術を教える立場でもあったりします。
痛い目はすでに若い時にいやというほど思い知ってます。
私なら9日もヒマがあったら全部技術の習得に時間を費やしますよ。プロとしてそのぐらい勉強はしてますよ。
あなたの勉強、仕事に対するスタンスが非常にアマちゃんだったので正直にいったまでです。
この数日間ネタにしてきたプログラムに対してあなたはコンパイルして実行すらしていないんじゃないですか?
もしくはコンパイラすらインストールしてないんじゃないですか?こんな問題2,3レスで終わりレベルですよ。
危機感がたりなさすぎです。もっと勉強しなさい。
843 :
仕様書無しさん :2013/08/10(土) 21:25:55.52
アスペのポエマー
>>840 3の倍数だけアホになる
というのに似てるが
面白そうなのでやってみよう
C言語でやってみることにします
845 :
仕様書無しさん :2013/08/10(土) 21:39:47.74
>>838 2chもやめたほうがいいんじゃね?
JET_JAPAN 7月31日
なので、もし明日、合格通知が届いたらブログ更新は
休止にすることにしよう。そして、Javaをマスターすることだけに専念する。
だが、ゲーム開発もマスターしたいという欲もあるので、たまに休みの日とかに、
C++言語でゲーム開発を頑張る。
847 :
844 :2013/08/10(土) 21:54:33.69
#include <iostream> using namespace std; int main() { for( int i=1; i<101; i++) { cout << i << endl; } } --------------------- とりあえず、これで1〜100まで出力されます さて、ここから改良していくわけですが、 えっと出題内容は、 >1から100まで数字を増やして、数字が3で割り切れればFizzと出力し、 >5で割り切れればBuzzと出力し、3でも割り切れず5でも割り切れなければ数字を >出力するってやつ。 というものか。えっと・・
自分なりに分かり易くまとめよう 1.1〜100までを出力する 2.3で割り切れる数値は「Fizz」を出力 3.5で割り切れる数値は「Buzz」を出力 4.3と5で割り切れない場合は、普通の数値を出力 ちなみに、俺はこうやって自分なりにプログラムをハッキリまとめないと組めなかったりするw で、問題は2.から4.です。 1.は無効になるので頭から外すことにしよう
849 :
仕様書無しさん :2013/08/10(土) 22:03:20.17
心の底からこいつ馬鹿。 fizzbuzzなんてワンライナーだろ。 入社適性試験で得意な言語で15分で提出できなかったら即不採用だわ。 C++極めたって…臍茶だなwww
FizzBuzz問題って有名なの? 失礼だったらスマンが、これ、プログラミング初歩だなあ。 Java、C、C++、VB、bash、cシェル、awk ・・・ なんでも書けそうだぞ。sql でもいけるんじゃない?
851 :
仕様書無しさん :2013/08/10(土) 22:09:36.70
ちなみに3の倍数かつ5の倍数の場合は fizzbuzzを出力するのな。 意外とこれすら解けない自称プログラマが 面接に来たりするから面白い。
#include <iostream> using namespace std; int main() { for( int i=1; i<101; i++) { if(i==1) { cout << "Fizz" << endl; } else if(i==2) { cout << "Buzz" << endl; } else { cout << i << endl; } } } ---------------------- もう少し手を加えて iが1の時は「Fizz」、2の時は「Buzz」 それ以外は数値を表示するようにしてみました ここからが問題ですね う〜ん・・・。
有名だと思う、言語の基礎中の基礎の部分を理解しているかどうかの話 これがすぐにわからないと0からやりなおせレベル
いや、これではダメなのか・・・。 別々にしないと最後のelseに辿り着けない。 こんなの初めて見たが意外と難しいね。 だが、面白そうだ。解いてみる価値はありそう。 小一時間、思考に没頭することにするよ
…%つかってもいいからさっさと書いてよ。。
857 :
844 :2013/08/10(土) 22:44:56.88
>>840 よし!解けた!
これでどうだ!
------------------
#include <iostream>
using namespace std;
int main()
{
for( int i=1; i<101; i++)
{
if(i%3 == 0)
{
cout << "Fizz" << endl;
}
else if(i%5 == 0)
{
cout << "Buzz" << endl;
}
else
{
cout << i << endl;
}
}
}
・・・
時間かかりすぎ 採用試験で出されたら10分でかけなかったらアウトだろ
861 :
844 :2013/08/10(土) 22:48:55.81
>>851 いや、問題をよく見てみろよ
3と5で割り切れない場合は数値を表示させるんだろう?
どこに「fizzbuzzを出力」と書いてあるんだよ
問題はよく読むものです
>>840 最初は少し迷ったけど
少し考えたら%で値を求めればいいじゃん!
ってのに気付いて答えを導いたよ
よくこんな面白い問題を思い付きましたね(^^
いい頭の体操になりました
862 :
844 :2013/08/10(土) 22:52:44.58
>>854 へぇー、こういう解き方もあるのか
なるほど、main関数に引数を使うという手もありますね
勉強になりました
>>861 よく見たらまちがっとるやん
だから3と5両方で割り切れるときは両方の条件を満たすんだからFizzBuzzだろ
864 :
仕様書無しさん :2013/08/10(土) 22:54:20.78
>>854 乙。十分です。
もしよければこっちに挑戦してみてください。
数字が7で割り切れるときにはSevenを出力してください。
メッセージを出力する条件と出力するメッセージが増えることが予想されます。
また、メッセージを出力する順番が変わることが予想されます。
メッセージを出力する条件と出力するメッセージが増えたときやメッセージを
出力する順番が変わったときに修正箇所が少なくなるように実装を工夫してください。
>>855 でしょでしょ。FizzBuzzは面白い問題なのよね。
>>861 出題した私のミスです。すみません。
数字が3で割り切れて、5で割り切れるときにはFizzBuzzと出力してください。
数字が3で割り切れず、5で割り切れないときには数字を出力してください。
もしよければ書いたコードを公開してほしいです。
いやいやいやいやw FizzBazzはビット演算とか%なしでとか縛りを設けるもんだ。
>>864 いや出題は間違ってない
>>857 は3で割り切れないかつ5で割り切れるときBuzzという勝手な解釈になってる
これができたら世界のナベアツ問題な
3の倍数と3のつく数字の時"AHO"を出力する
867 :
844 :2013/08/10(土) 23:05:09.90
>>864 え?だったらこうすればいいだけじゃん。
---------------------------------------
#include <iostream>
using namespace std;
int main()
{
for( int i=1; i<101; i++)
{
if(i%3 == 0)
{
cout << "Fizz" << endl;
}
else if(i%5 == 0)
{
cout << "Buzz" << endl;
}
else
{
cout << "FizzBuzz" << endl;
}
}
}
あの、、、すみません。寝ていいですか?w
869 :
ムエタイX :2013/08/10(土) 23:08:24.72
駄目だ
870 :
844 :2013/08/10(土) 23:11:20.01
こういうのは先生に教わって知るのではなく 誰にも教わらずに 自分で解かないと面白くないですね C言語を理解していれば誰でも解けると思います ただ、いきなりだったのでちょっと戸惑いましたが・・・ あと、俺は、この方法以外にも解き方は、たくさんあるように思えます 例えば、Javaでやるならインスタンス作成をして クラスでメソッドを使ってもいいかも知れません
>>870 >C言語を理解していれば誰でも解けると思います
いやこのFizzBuzz問題が話題になったのは
職業プログラマなのに解けないやつが結構いて
つまり言語は知っててもロジックを組み立てられないてことが問題なんだよ
872 :
仕様書無しさん :2013/08/10(土) 23:17:50.51
>>862 >なるほど、main関数に引数を使うという手もありますね
実はおまえさん、C言語初心者だろ
874 :
844 :2013/08/10(土) 23:25:31.73
>>872 ん?
問題ないように思えますが・・・。
>>871 なるほど
FizzBuzz問題ってのがあったのか、それは知りませんでした
ただ、「職業プログラマなのに解けない」の意味が分かりませんね
なぜ、こんな簡単なこと解けないんだろうか?プロのくせに・・・
>>868 はい、お休み
俺もそろそろ寝ます
ああ、職業訓練が本当に楽しみだ。
875 :
仕様書無しさん :2013/08/10(土) 23:29:03.21
いやいやいやいやwww 解けてから大口叩けや。間違っとるから。 実行しなくても分かるからw
はいはい
>>875 「実行しなくても分かるからw」まで言うかw
じゃあ、お前がC言語を全く理解していないということになるぞ?
多分、お前以外のここにいるC言語を理解している人なら
ソースコードを見るだけで「なるほど」と思ってるだろうよ
>>872 のサイトで、正常に実行されているというのに
どうして、そこまで大口叩けるのか理解に苦しむ・・・。
どこが正常に実行されてるんだよ
プログラム以前に、日本語での出題が理解できてなかったようだ。
>>875 じゃあ、お前のようにC言語を理解していないのに
「解けてから大口叩けや。間違っとるから。」という発言をしている
お前のために解説してやるわ
まず、「%」←これは余りを求める演算子です。
for( int i=1; i<101; i++)
{
if(i%3 == 0)
{
そして、このように書いた場合、i変数には1の値が入ってるわけです。
その1を3で割った場合の値はいくらになりますか?
「1÷3=0.3333」になります。
そして、ここでは、その「余りが0だったら」という条件を書いています
0ではないので、このif文はスルーされます
else if(i%5 == 0)
{
次は、ここだが
「1÷5=0.2」という計算で、これも0ではないのでこれもスルー
else
{
cout << "FizzBuzz" << endl;
}
なので、最初はこれが表示される
で、これはforループの中なので、最初に戻るわけだが、
for( int i=1; i<101; i++)
この最後の「i++」により、i変数は2になる
それを100になるまで延々に繰り返す
あとは自分で考えろ。この知ったか大ボラ野郎w
>>878 意味不明
俺のブラウザでも正常に表示されますが?
というか、そんなことはどうでもいいんだよ
C言語を理解してたら、
これを間違ってるなど口が裂けても言えないはずなんだよ
こんなのコンパイルしなくても
ソースコードを目で追うだけで解かるだろう?
if文は知らないのか?for文は知らないのか?
&演算子は知らないのか?i++短縮演算子は知らないのか?
何が知らないことが原因で解けない?
どれもC言語の初歩の初歩の命令と演算子だぞ?
>3でも割り切れず5でも割り切れなければ数字を >出力するってやつ 出題のこの部分を100回読み直せ。
840 :仕様書無しさん:2013/08/10(土) 21:04:19.12
>>838 FizzBuzz解ける?
1から100まで数字を増やして、数字が3で割り切れればFizzと出力し、
5で割り切れればBuzzと出力し、3でも割り切れず5でも割り切れなければ数字を
出力するってやつ。CでもC++でもJavaでもいいからやってみて。
851 :仕様書無しさん:2013/08/10(土) 22:09:36.70
ちなみに3の倍数かつ5の倍数の場合は
fizzbuzzを出力するのな。
もう一度条件を書いておくと
1. 数字が3で割り切れればFizzと出力
2. 5で割り切れればBuzzと出力
3. 3でも割り切れず5でも割り切れなければ数字を出力
4. 3の倍数かつ5の倍数の場合はfizzbuzzを出力
ということは
>>872 で
1
2
Fizz
4
Buzz
Fizz
7
8
Fizz
Buzz
11
Fizz
13
14
FizzBuzz
:
:
ってならないとおかしいよね?
いつものコンパイル通ったから俺は正しい!とか実行結果が合ってるから間違ってない!
なんてレベルじゃないよね?
この答えに辿り着けないのは、まだいいが、 このコードを間違ってるなんて言ったら C言語の初心者以下ってことになるぞ お前は間違いなく大恥をかいてることには違いない それに気付かないのは、 C言語を知らないのに大ボラ知ったか野郎のお前と、 C言語を知らない人だけです もっともこのスレはプログラミング言語を知ってる人は あまり来ないので話題にはならないが、 普通のC言語スレとかでそんなこと言ったら、 とんでもないことになるぞ
>>881 ごめん、俺のブラウザだとこうでるわ
FizzBuzz
FizzBuzz
Fizz
FizzBuzz
Buzz
Fizz
FizzBuzz
FizzBuzz
Fizz
Buzz
以下省略
887 :
844 :2013/08/11(日) 00:28:05.85
ごめんなさい
>>860 のコードを実行して自分のは見てませんでした
867は間違ってました
>>882 だから、それは「FizzBuzz」だったと
>>864 で出題者が訂正してるだろ
みっともないので言い訳はそれぐらいにしておけ
864 :仕様書無しさん:2013/08/10(土) 22:54:20.78
>>861 出題した私のミスです。すみません。
数字が3で割り切れて、5で割り切れるときにはFizzBuzzと出力してください。
数字が3で割り切れず、5で割り切れないときには数字を出力してください。
もしよければ書いたコードを公開してほしいです。
>数字が3で割り切れて、5で割り切れるときにはFizzBuzzと出力してください。
>数字が3で割り切れず、5で割り切れないときには数字を出力してください。
え?どこか間違ってる?
>>888 >数字が3で割り切れて、5で割り切れるときにはFizzBuzzと出力してください。
>数字が3で割り切れず、5で割り切れないときには数字を出力してください。
だから日本語も理解できないのかよ。
両方で割り切れたらFizzBuzz
どっちでも割れないときは数字を出力するんだよ。
>みっともないので言い訳はそれぐらいにしておけ
前にもあったけどこいつなんで初心者のくせに自分の間違いを疑わないの?
>>892 自分は初心者じゃない、もうマスターしてるんだって信じ込んでるから。
>>888 訂正前の
>3でも割り切れず5でも割り切れなければ数字を
>出力する
この条件すら満たしてないですよ
しかし%縛りもないFizzBuzzなんて意味あるのかってレベルだと思ってたんだけどな ふるい落としで意味あるんだな
この調子で職業訓練行ってもすぐに逃げ出すんだよ。 「間違ったことを教えられる」とか言ってなw
この程度の問題ソース見ただけで要件満たしてない事ぐらい把握しようよ 「出来ました」とコンパイルすら通らないのを持ってくる奴よりはマシだが
>>891 ああ、よく見れば確かにそうだな
>>840 では、
>1から100まで数字を増やして、数字が3で割り切れればFizzと出力し、
>5で割り切れればBuzzと出力し、3でも割り切れず5でも割り切れなければ数字を
>出力するってやつ。CでもC++でもJavaでもいいからやってみて。
と言ってたから、そのまま理解してた
だが
>>864 で問題内容を訂正したが
俺は「3でも5でも割り切れる時はFizzBuzzを表示するのか」と理解
だが、それも違ってたみたいだな
だったら、そんなややこしい出題をした
>>840 が全て悪いわ!
最初っから、ちゃんと出題しろよ!クソが!
問題を出題するなら
問題内容ぐらい最初っから、ちゃんと出題しろよな!
途中で問題内容を変更するなど
そんな問題は俺は認めん!!
これは全て
>>840 が悪いわ!!
ホント腹立つわ!!
全然ややこしくないだろ。 むしろ注意力不足がすべて。 正直、プログラマどころか社会人としての適性が無さそうです。 一度幼稚園からやり直してみてはいかがでしょうか?
理解力なさすぎわろた こんなヤツとは一緒に仕事したくないレベル
>>840 1から100まで数字を増やして、数字が3で割り切れればFizzと出力し、
5で割り切れればBuzzと出力し、3でも割り切れず5でも割り切れなければ数字を出力する
>>864 数字が3で割り切れて、5で割り切れるときにはFizzBuzzと出力してください。
数字が3で割り切れず、5で割り切れないときには数字を出力してください。
-----------------------------------------------------------
これでは、問題そのものが違うだろ!
>>840 で言ってた
「数字が3で割り切れればFizzと出力」と
「5で割り切れればBuzzと出力」は
どこに行ったんだよ!!
こんなの問題訂正とは認めんわ!
理解力なさすぎさらに追加w FizzとBuzzは何処にも行ってねーよ。 単に両方で割り切れなかったときは「FizzBuzz」と表示って要素を 追加しただけだ。 この話の流れを理解できなかったとか臍茶どころじゃねーわ。 正直頭脳労働に向いてない。
こんな枯れたネタでよくここまで盛り上がれるな バカばっか
これくらいで騒いでたらクライアントからの度重なる仕様変更、追加で禿るわな
禿げる以前に受注できない
840 :仕様書無しさん:2013/08/10(土) 21:04:19.12
>>838 FizzBuzz解ける?
1から100まで数字を増やして、数字が3で割り切れればFizzと出力し、
5で割り切れればBuzzと出力し、3でも割り切れず5でも割り切れなければ数字を
出力するってやつ。CでもC++でもJavaでもいいからやってみて。
851 :仕様書無しさん:2013/08/10(土) 22:09:36.70
ちなみに3の倍数かつ5の倍数の場合は
fizzbuzzを出力するのな。
これに対し
>>861 が勘違いしたレスをしたので、
謙虚な出題者は追記がわかりにくかったと考え、自らのミス、とした
861 :844:2013/08/10(土) 22:48:55.81
>>861 出題した私のミスです。すみません。
数字が3で割り切れて、5で割り切れるときにはFizzBuzzと出力してください。
数字が3で割り切れず、5で割り切れないときには数字を出力してください。
もしよければ書いたコードを公開してほしいです。
でもこれそもそもどこも書き換えた部分は無いよね
途中で追記したのを分かりやすく書き直しただけだよね
>>903 馬鹿はお前だよ
>>864 の文面のどこに「追加」など書いてあるんだよ
問題内容をそのまま読むと、
1.数字が3で割り切れて、5で割り切れるときにはFizzBuzzと出力してください。
2.数字が3で割り切れず、5で割り切れないときには数字を出力してください。
この2つに変わったことになるんだよ
FizzBuzz問題があるのかどうかなど俺は知らない
お前らはすでにFizzBuzz問題を知ってるという先入観があるから解かるかも知れないが
俺は今日、これを初めて見た。
だから、書かれた内容をそのまま理解して解くしかない
最初っから、ちゃんと出題していれば、
問題なく解けてるわ!!だから腹が立つ!!
>>902 864は840の条件補則だろ
840だけでは15の倍数の時に何が出力されるのが正解なのか分からんバカがいるから
お前はそのさらに斜め上のバカだか
じゃあ、問題をまとめるわ! 1.1〜100までを出力する 2.3で割り切れる数値は「Fizz」を出力 3.5で割り切れる数値は「Buzz」を出力 4.数字が3で割り切れて、5で割り切れるときにはFizzBuzzと出力してください 5.数字が3で割り切れず、5で割り切れないときには数字を出力してください 本当の問題はこれだな? だったら全員間違ってるだろうが!
ホント気分が悪い!! 寝る!!
>>908 仮にその2点に変更になってたとしても
お前の書いた答えはそれすら間違ってるんだよ。
社会に出たらそんな言い訳通じないぞ?
その調子で職業訓練の講師にも噛みつくのか?
もう寝かせとけw
>>910 1の段階で間違ってるだろう。1〜100まで出せとは仕様に一言もかいてない。
まあ仮に
1.数字が3で割り切れて、5で割り切れるときにはFizzBuzzと出力してください。
2.数字が3で割り切れず、5で割り切れないときには数字を出力してください。
これだけの問題だったとしても、
>1から100まで数字を増やして、数字が3で割り切れればFizzと出力し、
>5で割り切れればBuzzと出力し、3でも割り切れず5でも割り切れなければ数字を
>出力するってやつ。
これだけの問題だったとしても、
>>867 のコードはどっちも満たしてないよな
ってか
>>851 や
>>861 の追記がなければお前は15の倍数はどう書くつもりだったの?
追記無くても自然に、追記された内容のFizzBuzzになる、ってことは分かると思うんだが
講師相手ならバカで済むがクライアント相手に噛みついて首になる未来が見えるw
1.1〜100までを出力する 2.3で割り切れる数値は「Fizz」を出力 3.5で割り切れる数値は「Buzz」を出力 4.数字が3で割り切れて、5で割り切れるときにはFizzBuzzと出力してください 5.数字が3で割り切れず、5で割り切れないときには数字を出力してください この問題をそのまま解くなら、 まず、1〜100までを出力しなければいけない その上で、FizzとBuzzを出力し さらに、FizzBuzzを出力して さらに数値を主力だ? わけわからんわこんな問題!w
>1.1〜100までを出力する 出題者はこんなこと一言も言ってないぞ。 1から100まで数字を増やしてと言ってる。 さらに理解力不足で勝手に仕様を決めて逆ギレw
>>916 いや、俺はそういう風に解釈はしてない
「3でも割り切れず5でも割り切れなければ数字を出力する」が
数値ではなく「FizzBuzzを出力」と解釈しただけ
あんたの解釈した 「3でも割り切れず5でも割り切れなければFizzBuzzを出力する」 ってのはどこから出てきたの?
自分の誤解を相手にせいにするのは初心者の証 出題者(クライアント)が求めているものを正確に理解するのは プログラマーの大事なスキルだぞw まして、たった数行の文章に読み間違いとか…
エスパースキルが無いヤツはこの業界向いてないぞ 「××みたいなの作って」こんなのばっかだから
>>920 ああ、それは解かってる
それは単なる俺の逆切れだよw
俺も1〜100までカウントアップして
3で割り切れる時は、Fizzを出力
5で割り切れる時は、Buzzを出力
両方で割り切れる時は数値と理解したよ
だから、ああいうソースコードになった
それを
>>864 で問題訂正された時に、
両方で割り切れる時はFizzBuzzを出力と誤解釈してしまった
だから、ああいうソースコードになった
今回の肝は840の要求仕様だけで15の倍数を正しく処理できるかだろ 順番にif文に書き換える能無しを炙り出す罠
このスレAndroid開発も含まれるわけだが、この調子じゃAndroidまで到達せずに終了だな
840を読んで「15の倍数の時はどうしましょう?」と確認するのが普通
つかFizzBuzzなんてHello Worldの次にやるような基本的なことだろw 一体スレどんだけ使うつもりなんだ・・・
じゃあ分かったよ。 もう一度、問題を解くことにするわ 腹が立ったけど、難しい問題に挑戦するのは好きだからな。 だが、今回は、出題内容をハッキリさせてから解かせていただきます!! 1.1〜100までカウントアップ 2.3で割り切れる数値は「Fizz」を出力 3.5で割り切れる数値は「Buzz」を出力 4.数字が3で割り切れて、5で割り切れるときにはFizzBuzzと出力 5.数字が3で割り切れず、5で割り切れないときには数字を出力 この内容で解かせて頂きます
>>928 15の倍数を考える前に3で割りきれて5で割り切れる評価を先頭に持ってくるというのを
書けばいいわけでそのへんの理解力も試されるわけだな。
お前ら暇だなー とりあえずプログラマには向いてないから他の職業訓練いった方がいいよ あとそれ以前にコミュ力もやばそうだけどな 同僚や上司からこういう指摘受けたら俺が正しいって逆切れすんのか?
934 :
930 :2013/08/11(日) 01:47:13.15
よし。これで文句は言わせない --------------------------- #include <iostream> using namespace std; int main() { for( int i=1; i<101; i++) { if(i%3==0 && i%5==0) { cout << "FizzBuzz" << endl; } else if(i%3 == 0) { cout << "Fizz" << endl; } else if(i%5==0) { cout << "Buzz" << endl; } else { cout << i << endl; } } }
935 :
仕様書無しさん :2013/08/11(日) 01:50:01.09
プログラマーとプログラマー志望の奴ってもんの凄くコミュ障多いな 学校で先生に俺さんはコミュ力ありますねーて言われてびっくりしたわ 自分ではコミュ障だと思ってたけど俺を超越してる奴が多すぎ
>>934 この程度の結論にたどり着くのにどれだけ回り道してるんだよ
さて追加で「割り算や%を使ってはいけません」という条件付きでできる?
何もご存知ない皆様へ少しだけこの逆ギレ野郎
>>930 についてネタばらしさせていただきますが
コイツは去年ホームヘルパー2級の職業訓練を途中で辞め
もう何年も無職で生活保護貰ってはブログやツイッターの他2chに現れてはこんな体たらくを繰り返してきた怠け者です。
この逆ギレ男の過去については
>>692 や
>>793 や
>>841 が全てを物語っております。
>>937 >さて追加で「割り算や%を使ってはいけません」という条件付きでできる?
ほぉ、それは難しそうで面白そうだな・・・
問題内容は同じで「割り算と%を使わない」か
だが、割り算を使わずに「割り切れる時」など、そもそも可能なのか?
面倒なのでコンパイルしないで口頭で解いてみます
int型のa変数とb変数をまず用意し、aは3で初期化、bは5で初期化する
forループの中で、a変数には3を掛けて、b変数には5を掛けて、
それぞれの倍数の値を求める
それをif条件文で使用して、各文字を表示するようにする。
これでいいかい?
>>939 全然!!
だが言い訳はしたくなかったので
意地で解いただけ
>>940 面倒なのでコンパイルしないで口頭で解いてみます
面倒じゃなくてできないんだろ。動くコード書けよ。
>>943 うん
と言いたいところだが
嘘は付きたくないので%演算子に気付くのに数分時間が掛かったよ
だが、1時間も2時間も掛かる問題ではないことは確かだな
また、何か難しい問題でもあったら遠慮なく出題して頂戴
「考える」ということは基本的には好きだしね
だが、今日はもう寝る
早くシステム会社に入社して
無理難題の案件とかに出会ってみたいよ
そしたら、喜んで解いてるでしょうねw
じゃあね
逆数、 除算のループ、 二本のカウンタ 三番目がシンプルだな
946 :
仕様書無しさん :2013/08/11(日) 02:19:27.51
>>944 FizzBuzz問題に次の条件を加えるとしたらどう解く?
数字が7で割り切れるときはSevenと出力する。
数字が11で割り切れるときはElevenと出力する。
今の俺はおジャ魔女を見てもコンパイルしても。 憎しみと怒りしか感じない!!!! ちくしょう!!!!!!!
ごめん俺が解いたら駄目じゃんな
>去年ホームヘルパー2級の職業訓練を途中で辞め これ、どっかのヲチサイトで解説されてるの? やめたときの言い訳を見てみたい そして同じ言い訳をJavaでやるに違いない
>>946 else if(i%7 == 0)
{
cout << "Seven" << endl;
}
else if(i%11==0)
{
cout << "Eleven" << endl;
}
-------------------------
これをelseの前に入れるだけ
>>946 つまりこう
-----------------------
#include <iostream>
using namespace std;
int main()
{
for( int i=1; i<101; i++){
if(i%3==0 && i%5==0){
cout << "FizzBuzz" << endl;
}
else if(i%3 == 0){
cout << "Fizz" << endl;
}
else if(i%5==0){
cout << "Buzz" << endl;
}
else if(i%7 == 0){
cout << "Seven" << endl;
}
else if(i%11==0){
cout << "Eleven" << endl;
}
else{
cout << i << endl;
}
}
}
>>949 >841のポナまとめがヲチサイトで
辞めたのは去年の3月頃の話だけど本人が当時やってたニコニコ生放送で
辞めた言い訳を垂れ流しては視聴者から非難が殺到してたよ。
8年前のちょうど今頃も、ブラブラ遊んでる。
639 NAME:名無しさん@ゴーゴーゴーゴー! MAIL:sage
>>635 ふ―――。
ニートかー。
俺はニートかもしれないな・・・。
何もやる気が起きねーよ。
仕事しなくても兄貴が稼いでくれるし・・・。
俺はここ数ヶ月、まったく仕事はしてない。
ただ、遊びほうけているだけ。
でも、今は何もやる気がおきん。
もう、お前らの相手をしても、何も感じねーよ。
また。俺を興奮させてくれよ。
DATE:2005/08/18(木) 10:02:51 ID:OELXXKcV
954 :
仕様書無しさん :2013/08/11(日) 02:54:33.89
>>951 数字が3で割り切れるときにFizzを出力して、
数字が5で割り切れるときにBuzzを出力するとしたら
>>934 になるでしょ。
その規則に従ってさらに
数字が7で割り切れるときにSevenを出力して、
数字が11で割り切れるときにElevenを出力するとしたらどう解く?
955 :
951 :2013/08/11(日) 04:50:05.27
>FizzBuzz問題に次の条件を加えるとしたらどう解く? だよな? 条件を加える 条件を加える 条件を加える だよな? つまり、 1.1〜100までカウントアップ 2.3で割り切れる数値は「Fizz」を出力 3.5で割り切れる数値は「Buzz」を出力 4.数字が3で割り切れて、5で割り切れるときにはFizzBuzzと出力 5.数字が3で割り切れず、5で割り切れないときには数字を出力 6.数字が7で割り切れるときはSevenと出力 7.数字が11で割り切れるときはElevenと出力 だ・よ・な? だったら問題ないかと
958 :
956 :2013/08/11(日) 05:23:45.56
>>954 と、思いましたが
よくよく考えてみるとこれは無理ですね
>数字が3で割り切れるときにFizzを出力して、
>数字が7で割り切れるときにSevenを出力して、
これでは3と7が重複してしまう
21は、3でも7でも、どちらでも割り切れる
どちらか片方を出力するなど無理です
FizzとSevenを両方出力するなら、
「FizzSeven」になってしまいます。
それなら全然可能です。
ですが、それだと、3なら「Fizz」を7なら「Seven」が表示されていないことになる
959 :
仕様書無しさん :2013/08/11(日) 05:46:19.54
>>958 数字が3で割り切れるときにFizzを出力する。
数字が5で割り切れるときにBuzzを出力する。
数字が3で割り切れず、5で割り切れないときに数字を出力する。
という問題は4つの場合分けで実装できたでしょ。
数字が3で割り切れて、5で割り切れればFizzBuzzと出力する。
数字が3で割り切れて、5で割り切れなければFizzと出力する。
数字が3で割り切れず、5で割り切れればBuzzと出力する。
数字が3で割り切れず、5で割り切れなければ数字を出力する。
では、
数字が3で割り切れるときにFizzを出力する。
数字が5で割り切れるときにBuzzを出力する。
数字が7で割り切れるときにSevenを出力する。
数字が11で割り切れるときにElevenを出力する。
数字が3で割り切れず、5で割り切れず、7で割り切れず、11で割り切れないときに数字を出力する。
という問題はいくつの場合分けが必要で、どう解くのがいいと思う?
960 :
仕様書無しさん :2013/08/11(日) 06:07:29.47
みんな親切だね、こんな奴の相手をしてあげるなんて・・・ それとも、ただ単に暇なのかいじって遊んでるだけなのか
遊んでるだけっしょ、ここまでのバカは久しぶりに見たわw 日本語すら理解できない奴がC/C++マスターしてます(キリッ)なんだもんwww
言語を理解している事とロジックを組み立てる事は別物だからな 前者しかできないのはコーダーといってプログラマーとは言わない
>>954 バカ相手にはちゃんと仕様を提示してやらないと
3で割り切れる場合
5で割り切れる場合
7で割り切れる場合
11で割り切れる場合
いずれの条件も満たさない場合は数字
ただし複数の条件を満たす場合は該当する文字を連結して全て表示する
>>940 できないなら出題はしない
そのアルゴリズムでできると思うならコード書いてみればいい
はっきり言ってその考え方で正常に動く物ができるとは思えないけどね
965 :
956 :2013/08/11(日) 07:34:27.89
もう少しシンプルにまとめられると思えたので
以下の条件でプログラムを組み直しました
1.1〜100までカウントアップ
2.3で割り切れる数値は「Fizz」を出力
3.5で割り切れる数値は「Buzz」を出力
4.数字が3で割り切れて、5で割り切れるときにはFizzBuzzと出力
5.数字が3で割り切れず、5で割り切れないときには数字を出力
6.割り算や%演算子は使用しない
7.もっとシンプルに
http://ideone.com/vCGhVk
次はこれですね 1.1〜100までカウントアップ 2.3で割り切れる数値は「Fizz」を出力 3.5で割り切れる数値は「Buzz」を出力 4.7で割り切れるときは「Seven」と出力 5.11で割り切れるときは「Eleven」と出力 6.3で割り切れて、5で割り切れるときにはFizzBuzzと出力 7.3で割り切れず、5で割り切れないときには数字を出力 8.割り算や%演算子は使用しない 9.もっとシンプルに この場合、3でも7でも割り切れる時は、「FizzSeven」 もしくは、3でも11でも割り切れる時は、「FizzEleven」 を出力させるパターンもあるということですな? うーん。これは難しいぞ・・・
967 :
966 :2013/08/11(日) 08:10:30.03
よし、解けた!
http://ideone.com/iKAGKY ついでに万能型にしておきました
つまり、どのパターンが重なっても
それに対応するように表示です
3と5と7と11の全ての数字に対応です
これは大変でしたね・・・(^^;
難しくはないが、入れ子がややこしかった・・・
なんだが、この大量の入れ子を組んでいる時
RPGツクールVX Aceの
Rubyスクリプトプログラムを思い出してしまいましたねw
番号を振ってるので1つひとつ検証してください
968 :
967 :2013/08/11(日) 08:17:42.83
だが、俺はまだこのプログラムを もっともっとシンプルにまとめれるような気がしています 良かったら今度はそちらが このプログラムをもっとシンプルにまとめるコードを解いてみてください 多分出来るはずです 同じパターンがいくつもありますので、 あれをちょこっと変えるだけで済むような気がします
969 :
966 :2013/08/11(日) 08:22:11.27
と、思ったが
>>967 のミスコードを発見
ちょっと修正します
修正版を上げる前に
どこがミスコードなのかを言い当ててください
なんかみなさん熱心ですね。 現役のPGもこれくらい熱心に取り組みたいものですわ。 もう調査という名のコピペ祭りな日常・・・
どう考えてもスレ違いだろ。。
972 :
仕様書無しさん :2013/08/11(日) 08:37:20.37
>>967 すごいな
条件が1つ増える毎にコードが爆発的に増えるw
フラグ1つ持ってれば条件1つにif文1つ増えるだけなのに
for(1から100まで){
boolean draw=false;
if(3の倍数){
3の倍数である事を出力
draw=true;
}
if(5の倍数){
5の倍数である事を出力
draw=true;
}
同様にif文を条件に合わせて記述
if(draw=false){
数字を出力
}
}
重要なのは「else if」じゃない所
配列とか使っていいならエラトステネス的にやれば何でもできるね
>>967 ワロタwよくこんなコードかけるな逆に感心する
13、17、19、23・・・ってどんどん追加したらどうするつもりだよw
1個数値を追加につき1個if分を追加で済むようにしろ
>>973 最後以外のif文はやってる事が同じなので配列+ループで
>>972 のように「一般化」できる
という所までやってやっと仕事で使えるレベルだ
この程度の問題でif文をダラダラネストしてるようじゃ論理的思考能力を疑うし仕様変更に耐えられない
職業訓練って言語教えるだけでアルゴリズムのステップアップにはならないだろ こんな頭では使える言語増やしても役に立たんわw
アルゴリズムなんて出尽くしてるしググればわかるし、クラスライブラリもあるから今は基本をおろそかし過ぎなんだよね。 でも現実は仕事をこなすだけで精一杯の情況なわけで、 xUnitとかそういうのをつかってしっかりテストしてクオリティの高いバグのないコードを書くのが一番正しいと思うんだな。
もう完全にスレチなのでROMるわ。たのしかったよ。勉強にもなったしね。バカとの付き合い方をw
980 :
966 :2013/08/11(日) 09:27:56.74
よし!これでもっと完璧になった
http://ideone.com/I0Ttve ----------------------------
int a=3, b=5, c=7, d=11;
上記ソースのこの部分のa〜d変数に好きな数値を入れれば
どの数値ででも対応できるようにしています
より万能なシステムになりました
この万能システムになった状態から さらにコンパクトなコードに作り替えていきたいのですが もうスレが終わりそですし、 十分、楽しめたので、これ以上はよしておきます 職業訓練前のウォーミングアップは十分でしょう あー楽しかった!!(^▽^ おしまい
世間は盆休みやコミケやらで満喫してんのに お前ら何やってんのwww
983 :
966 :2013/08/11(日) 09:39:25.57
>>978 だからググって答えを見つけてくるだけでは意味がありません
何も見ずに、誰にも教わらずに、本とかも読まずに、
全て自分の頭の中でイチから構築しないと意味がありません
俺の中ではググることさえ甘えです
そういうのが本当の実力というものでしょう
984 :
966 :2013/08/11(日) 09:48:17.66
>>972 そうです!
そういう奴が俺が考えていたもっとコンパクトなコードです
それに挑戦しようと思ったが
疲れたのでやめときました
あのif文の中身は同じ法則で積み上げているだけなので、
あのif文の入れ子をシステム化してしまえば、
もっとコンパクトに収められるということですね
>>980 >上記ソースのこの部分のa〜d変数に好きな数値を入れれば
>どの数値ででも対応できるようにしています
いやそういう問題じゃないって
条件を↓のように拡張しても対応できるように設計しろ
1〜100で素数の約数がある場合はその約数を全てアルファベットで出力
疲れたのでやめた<<<<<<<<<<越えられない壁<<<<<<<<<972 てか980みたいなコード書く方が疲れるわ。
>>986 いや、出来ないこともないが、
>>972 のようなシステムを構築するには、
またそのアルゴリズムを頭の中で構築しないといけないので
それが面倒ということです
こういうのは経験がモノを言うと思う
現役バリバリのプログラマなら自分の体験から色んなプログラムを見てきているでしょうから
引き出しがいっぱいなので、そんな人と競っても叶わないのは当然
俺はハッキリ言って経験がなさすぎるのです
なので引き出しが空っぽの状態からの構築ですので
こっちの方がハンデみたいなものでしょ?
だが、解けないことはない。ということは言っておく
あとで絶対保守したくないなこいつらのコード
というか、なんでC++をやってんだろw Javaをこれから身に着けようという人間なのにww
990 :
仕様書無しさん :2013/08/11(日) 10:39:21.81
>>980 バカ通り越してある意味すごいわ
「else使用禁止」って条件にした方がおもしろかったかも
992 :
仕様書無しさん :2013/08/11(日) 11:10:50.66
なぁ、仕事でこう言うアスペと組まされたらどうすればいいんだ? 昔ネットワーク土方やってた時の相方がもうブッ殺したい位のコミュ不全な野郎で お陰で不眠症になって眠剤の世話になって最終的にそいつブン殴って辞めてやったけど 流石にもう大人だからそう言う事はしたくないけど、このレベルの奴が来たら自分を抑える自信が無い・・・
993 :
仕様書無しさん :2013/08/11(日) 11:16:02.52
>>987 あれ、C++だかCだかマスターしたと言ってた気がするが別人か?
経験もないのに言語をマスターしただなんて
料理本を読んで料理をマスターしてるっていってるようなものだぞ?
>>993 甘いな。
この荒らしは都合が悪くなるとあんたみたいに擁護してくれた人にも掌返して噛みつくような奴だ。
現れた当初応援コメをしてくれた
>>573 に敵意むき出しで発狂するくらいのアスペなキチで
日本語が通用しない奴だから必要以上に相手をしないに限る。
なにせ講習が始まる19日まで暇をもて余しては居座り続けているくらいだから次スレからは要注意人物としてテンプレで告知した方がいいかと。
こんにちは。まだ続いてたんですか?? 昨日はCで書いたのは彼がC, C++の経験者っぽかったからです。スレ汚しすみませんでした
基本的にアスペルガーは必要以上に喋らンから そいつは多動性欠陥障害
998 :
仕様書無しさん :2013/08/11(日) 16:22:56.20
多動性障害が次スレにも居座るだろうから、俺はもうこのスレだけで卒業するわ
1000 :
仕様書無しさん :2013/08/11(日) 16:52:20.82
>>999 好きにすればいいと思うけど、その感情って嫉妬でしかないと思うよ。すごくダサいよ。
もっとクールになりなよ。
1001 :
1001 :
Over 1000 Thread このスレッドは1000を超えました。 もう書けないので、新しいスレッドを立ててくださいです。。。