JavaでStrings args[] = {} の配列の定義指定したいんだけどさ

1: 以下、5ちゃんねるからVIPがお送りします 2020/03/06(金) 00:51:32.670 ID:sVoWCQ8d0
public static void main(String[] args)の「args」に反応して重複エラー吐くんだがなんで?

3: 以下、5ちゃんねるからVIPがお送りします 2020/03/06(金) 00:56:05.245 ID:sVoWCQ8d0
Java詳しいひときて……

4: 以下、5ちゃんねるからVIPがお送りします 2020/03/06(金) 00:58:11.959 ID:pDcaVZ/q0
変数名変えたら消えんの?

5: 以下、5ちゃんねるからVIPがお送りします 2020/03/06(金) 01:00:06.187 ID:sVoWCQ8d0
>>4
public static void main(String[] args)のほう変えたら消えるのよ

6: 以下、5ちゃんねるからVIPがお送りします 2020/03/06(金) 01:03:24.303 ID:gQ+xi8Tb0
重複してるからじゃないの?

7: 以下、5ちゃんねるからVIPがお送りします 2020/03/06(金) 01:05:36.285 ID:MdSNDy4A0
配列の型あってるの

9: 以下、5ちゃんねるからVIPがお送りします 2020/03/06(金) 01:10:41.173 ID:sVoWCQ8d0
>>7
た、多分?

8: 以下、5ちゃんねるからVIPがお送りします 2020/03/06(金) 01:08:09.741 ID:ZrIQbMXM0
javaにも手を出してみたい今日この頃

10: 以下、5ちゃんねるからVIPがお送りします 2020/03/06(金) 01:56:27.371 ID:sVoWCQ8d0
問題文がargs[0~3]の引数を設定せよってことだから
String args[] の配列設定したんだけどなあ
なんでここだけ重複するんだろ
そもそもpublic static void main(String[] args)の部分の「args」って変数扱いなのか? こっち変えたほうが早い気がする

17: 以下、5ちゃんねるからVIPがお送りします 2020/03/06(金) 02:29:06.998 ID:PLfADMOK0
>>10
public static void main(String[] args)
の String[] args も変数だよ

19: 以下、5ちゃんねるからVIPがお送りします 2020/03/06(金) 02:33:07.640 ID:sVoWCQ8d0
>>17
むむむ

50: 以下、5ちゃんねるからVIPがお送りします 2020/03/06(金) 03:35:29.248 ID:TImx3NFYd
>>10でコマンドライン引数について触れてるから間違いだぞ
まあ優しい友達が教えてくれればええか

11: 以下、5ちゃんねるからVIPがお送りします 2020/03/06(金) 02:01:32.285 ID:K8EeKAH/0
問題文をちゃんと書いてくれないと意味がわからないよ
mainの引数はargsじゃなくてもいいよ

13: 以下、5ちゃんねるからVIPがお送りします 2020/03/06(金) 02:15:44.216 ID:sVoWCQ8d0
>>11
だよなmainの方書き換えたら問題ない
けどこれ
設問の地の文だからいじっていいのかわからん

12: 以下、5ちゃんねるからVIPがお送りします 2020/03/06(金) 02:14:38.200 ID:sVoWCQ8d0

問題文は
public static void main(String[] args){

int Apple = integer. parseInt(args[0]);
String sampleMethod = args[1];
int Orange = integer.parseInt(args[2]);
Int Juice = 0 ;

if(“+”.equals(sampleMethod)){
Juice = Apple + Orange;
}else if(“-“.equals(sampleMethod)){
Juice = Apple – Orange;

} System.out.println(Juice);

問 Juiceの出力結果が5になる値を求めよ

という感じ

14: 以下、5ちゃんねるからVIPがお送りします 2020/03/06(金) 02:18:22.413 ID:sVoWCQ8d0
>>12
×値を求めよ
○引数の設定を記述せよ

15: 以下、5ちゃんねるからVIPがお送りします 2020/03/06(金) 02:20:31.018 ID:sVoWCQ8d0

で俺は、スレタイにもあるように配列使えばいいんだなーと思って
Strings args[] = {“2″,”+”,”3″};

を置いたんだけど、このargsがmainの引数argsと重複エラーしちゃう
あと「引数の設定を記述せよ」っていうのも
Strings args[] = {“1″ ,”+”,”4″};
Strings args[] = {“2″,”+”,”3″};
Strings args[] = {“4″,”+”,”1″};
・・・

と無限にあるような気がして迷ってる
誰か詳しい人いたらヒントください

16: 以下、5ちゃんねるからVIPがお送りします 2020/03/06(金) 02:24:47.945 ID:fJbBYbqc0
mainのargsじゃだめなの?
javaの実行時に渡す値がmain(String[] args)だけど

18: 以下、5ちゃんねるからVIPがお送りします 2020/03/06(金) 02:32:14.106 ID:sVoWCQ8d0
>>16
すまん俺昨日から始めたガチ初心者だから理解してないと思うんだけど
main(String[] args) = {}
の形にすればいいってこと?

20: 以下、5ちゃんねるからVIPがお送りします 2020/03/06(金) 02:36:53.345 ID:sVoWCQ8d0
じゃあなんで設問の変数はargsなんだ……エラー吐いても仕方なくない?

21: 以下、5ちゃんねるからVIPがお送りします 2020/03/06(金) 02:41:23.044 ID:sVoWCQ8d0

設問

public class ジュースの作り方
public static void main(String[] args){

int Apple = integer. parseInt(args[0]);
String sampleMethod = args[1];
int Orange = integer.parseInt(args[2]);
Int Juice = 0 ;

if(“+”.equals(sampleMethod)){
Juice = Apple + Orange;
}else if(“-“.equals(sampleMethod)){
Juice = Apple – Orange;

} System.out.println(Juice);

}
}

問 Juiceの出力結果が5になる引数の設定を記述しなさい

→1+4でも2+3でも5になるけどいいのかな?とりあえず2+3でいれくか

答 3行目(int Appleの上)に String[] args = {“2″,”+”,”3″}; を入れる

→いれた 配列の args が重複エラー

22: 以下、5ちゃんねるからVIPがお送りします 2020/03/06(金) 02:42:11.826 ID:sVoWCQ8d0
多分どっか間違ってるんだと思うけどわかる人いたら教えてくださいm(_ _)m

23: 以下、5ちゃんねるからVIPがお送りします 2020/03/06(金) 02:43:41.398 ID:PLfADMOK0
String[] args = {“2″,”+”,”3″};
これだと新たに変数定義しようとしてるから怒られてる

24: 以下、5ちゃんねるからVIPがお送りします 2020/03/06(金) 02:43:42.625 ID:0M6bf3fV0
単純にmainの引数としてargs変数を宣言してるのに再宣言してるからあかんだけでは

27: 以下、5ちゃんねるからVIPがお送りします 2020/03/06(金) 02:49:03.937 ID:sVoWCQ8d0
>>23
>>24
意味はわかる~~~~直し方がわからん~~~~

25: 以下、5ちゃんねるからVIPがお送りします 2020/03/06(金) 02:44:51.487 ID:3MR7LVfH0
引数の設定答えればいいだけだから
コード追加する必要ないじゃん
2,+,3
が答えです
でいいんじゃね

29: 以下、5ちゃんねるからVIPがお送りします 2020/03/06(金) 02:51:08.807 ID:sVoWCQ8d0
>>25
そういうもんなのか?それならそれでいいんだけども
2,+,3でも1,+,4でもいいのかな?この場合
なんか簡単すぎて騙されてる気がする

33: 以下、5ちゃんねるからVIPがお送りします 2020/03/06(金) 02:56:47.626 ID:3MR7LVfH0

>>29
何の問題か知らないけど
関数の働きを理解してるか問われてるんじゃないだろうか

答えが何通りもあるのが気になるけど

36: 以下、5ちゃんねるからVIPがお送りします 2020/03/06(金) 03:00:01.817 ID:sVoWCQ8d0
>>33
いや~勉強始めた仲間内のちょっとしたクイズみたいな感じなんだよな
サンキューとりあえずここまでは完全に理解した!!
やっぱvipperの守備範囲って広いわ

26: 以下、5ちゃんねるからVIPがお送りします 2020/03/06(金) 02:47:31.073 ID:PLfADMOK0
String[] args = {“2″,”+”,”3″}; ←これを
args = new String[] {“2”, “+”, “3”}; ←こうすれば動くんじゃないかな

28: 以下、5ちゃんねるからVIPがお送りします 2020/03/06(金) 02:49:55.854 ID:sVoWCQ8d0

>>26
あっ動いた!!!!これだ!!!!すごい!!!!!

これだとargsを再宣言したことにはならないの??

31: 以下、5ちゃんねるからVIPがお送りします 2020/03/06(金) 02:54:16.266 ID:PLfADMOK0

>>28
これだと args への代入になるから再宣言ではないよ
配列だからややこしいかもしれないけど、例えばintで考えると

void foo(int bar){
int bar = 0;
}

これはエラーになるけど

void foo(int bar){
bar = 0;
}

これはエラーにならないって言うのと同じ

32: 以下、5ちゃんねるからVIPがお送りします 2020/03/06(金) 02:55:33.907 ID:sVoWCQ8d0
>>31
ああなるほど!!
スゲーわかりやすい!ありがとう!

30: 以下、5ちゃんねるからVIPがお送りします 2020/03/06(金) 02:52:56.626 ID:sVoWCQ8d0
あnew Stringで初期化したってことかな?

35: 以下、5ちゃんねるからVIPがお送りします 2020/03/06(金) 02:57:55.201 ID:sVoWCQ8d0

ちなみにこれ問1.2.3とあって
問1 Juiceの出力結果が5になる因数の設定を記述せよ

問2 Juiceの出力結果が10に(ry

問3 Juiceの出力結果が15に(ry

なんだけどこれ教えてもらった通りにやると解答のパターン多すぎて大丈夫か??ってなるんだわ

37: 以下、5ちゃんねるからVIPがお送りします 2020/03/06(金) 03:00:51.904 ID:/AdAqduo0
そりゃあ同名の変数を再宣言できないのは当たり前だろ

39: 以下、5ちゃんねるからVIPがお送りします 2020/03/06(金) 03:05:48.358 ID:sVoWCQ8d0

>>37
そうだったんだよ!ようやくわかったよ

>>38
サンキュー!!頑張る!!

親切なvipperたちありがとー

41: 以下、5ちゃんねるからVIPがお送りします 2020/03/06(金) 03:12:48.558 ID:sZmrPSzed
>>39
何もあってないぞ
恥かく前にコマンドライン引数でググれ
どんな環境で実行してるのか知らないけど、プログラム外から値を渡せるんだよ
問題文的にコマンドライン引数を使って解く問題だからちゃんと自分で調べてやってみ

38: 以下、5ちゃんねるからVIPがお送りします 2020/03/06(金) 03:02:17.037 ID:PLfADMOK0
勉強頑張って

40: 以下、5ちゃんねるからVIPがお送りします 2020/03/06(金) 03:07:44.223 ID:sZmrPSzed
間違った答え教えてやるなよホンマ…

42: 以下、5ちゃんねるからVIPがお送りします 2020/03/06(金) 03:13:23.939 ID:fJbBYbqc0
java hoge {1} {2} {3} みたいに実行するとそれぞれ引数として実行時に取り込まれるんだよね
もう居ないかもしれないけど

44: 以下、5ちゃんねるからVIPがお送りします 2020/03/06(金) 03:14:58.544 ID:p0INdZR4d
全然知らんけど答えが複数パターンあるって設問として正しいのか?

45: 以下、5ちゃんねるからVIPがお送りします 2020/03/06(金) 03:20:12.361 ID:8O8guRk/d
コマンドライン引数の設定を記述ってのも意味わからん気はするが
答え方どうなるんだ

46: 以下、5ちゃんねるからVIPがお送りします 2020/03/06(金) 03:25:30.697 ID:fJbBYbqc0

届かない思いか

>>45
javac hoge.java
java hoge 2 + 3

55: 以下、5ちゃんねるからVIPがお送りします 2020/03/06(金) 03:55:32.548 ID:sVoWCQ8d0

帰ってきた なになに……んん?

コマンドライン引数?をググってる
つまり
代入する数字は外部から引っ張ってくること前提で
その指示が>>46ってことか
「引数の設定の記述」ってソースコード内の記述じゃなくてコマンドプロンプトに書く記述のことだったのかな?

47: 以下、5ちゃんねるからVIPがお送りします 2020/03/06(金) 03:27:22.495 ID:TImx3NFYd
ドヤ顔で答えてる>>1を想像してワロタ

48: 以下、5ちゃんねるからVIPがお送りします 2020/03/06(金) 03:30:07.538 ID:8O8guRk/d
たぶんコマンドライン引数自体知らないんだと思う
始めたばかりみたいだし

49: 以下、5ちゃんねるからVIPがお送りします 2020/03/06(金) 03:34:24.704 ID:fJbBYbqc0
>>48
まあそうだろうね
一応求める答え的には間違えじゃないからな・・・終わりよければ全てよしか?

51: 以下、5ちゃんねるからVIPがお送りします 2020/03/06(金) 03:38:32.571 ID:/J8IoRkbd
っていうかやってること同じじゃね?問題はないでしょ

53: 以下、5ちゃんねるからVIPがお送りします 2020/03/06(金) 03:43:41.273 ID:cHdXAHP9M
>>51
全然同じじゃない

52: 以下、5ちゃんねるからVIPがお送りします 2020/03/06(金) 03:40:43.174 ID:BkT1Iza3d
プログラミングのお作法的にもよろしくないし問題しかないわ

54: 以下、5ちゃんねるからVIPがお送りします 2020/03/06(金) 03:45:16.600 ID:eOqCBfx/0
そもそもこの問いの答えって引数書くことしか求められてない気がするんだけど

56: 以下、5ちゃんねるからVIPがお送りします 2020/03/06(金) 03:58:07.654 ID:sVoWCQ8d0
>>54説もあるwけどそうすっと答えは「1,+,2」ってことよね?

57: 以下、5ちゃんねるからVIPがお送りします 2020/03/06(金) 03:59:35.448 ID:dgrte2y70
>>56
>>54説もあるじゃねえんだよバカ
>>54もコマンドライン引数の話してるんや

59: 以下、5ちゃんねるからVIPがお送りします 2020/03/06(金) 04:07:08.001 ID:sVoWCQ8d0
>>57
そもそも引数がどこから来るのか理解してなかったわ!

61: 以下、5ちゃんねるからVIPがお送りします 2020/03/06(金) 04:14:32.457 ID:X55fKXVPd
>>59
エンジニアとして大成したいなら問題を正確に伝える意識を持ったほうがいいよ

64: 以下、5ちゃんねるからVIPがお送りします 2020/03/06(金) 04:29:17.825 ID:sVoWCQ8d0
>>61
わかった忘れないようにする

58: 以下、5ちゃんねるからVIPがお送りします 2020/03/06(金) 04:04:23.474 ID:sVoWCQ8d0

ググった感じ解答欄は
javac ジュースの作り方
java 1,+,2

って形になるのか
コマンドライン引数って超便利じゃん!寝ようと思ってパソコン落としちまった

60: 以下、5ちゃんねるからVIPがお送りします 2020/03/06(金) 04:07:46.401 ID:xShmOwEiM
Javaではmainという名前のメソッドは特別なメソッドで、そこに渡される引数(String配列、名前はだいたいargs)も特殊なものだから
使い方をちゃんと理解しようねっていう問題だよ

62: 以下、5ちゃんねるからVIPがお送りします 2020/03/06(金) 04:27:05.166 ID:sVoWCQ8d0

プログラムはまずmainメソッドが実行されるけど
mainメソッドは特別で実行時に外部から情報を受け取れる
その時受け取る情報が引数で
値を指定した引数がコマンドライン引数
書き方はjavac mainメソッド 値1,値2,値3
引数はargs[]に入るので
この問題の場合 答えは javac 1,+,2

って理解であってるる

63: 以下、5ちゃんねるからVIPがお送りします 2020/03/06(金) 04:28:57.273 ID:sVoWCQ8d0

>>62
書き方は
javac mainメソッド.java
java 値1,値2,値3,

答えは
javac ジュースの作り方.java
java 1,+,2

ですた

65: 以下、5ちゃんねるからVIPがお送りします 2020/03/06(金) 04:31:07.784 ID:BYzaOVZBd
>>63
javac ジュースの作り方.java
java ジュースの作り方 1 + 2
が正解
スペース区切りで渡す

66: 以下、5ちゃんねるからVIPがお送りします 2020/03/06(金) 04:33:54.097 ID:sVoWCQ8d0
>>65
あっそうだ!!ありがとう

67: 以下、5ちゃんねるからVIPがお送りします 2020/03/06(金) 04:51:46.257 ID:eVd8QMJTd
ま頑張れよ

68: 以下、5ちゃんねるからVIPがお送りします 2020/03/06(金) 04:58:00.184 ID:sVoWCQ8d0
サンクス!!頑張ります!!

引用元

管理人からひと言

解決してよかった

スポンサーリンク
スポンサーリンク
スポンサーリンク

シェアする

フォローする

スポンサーリンク
スポンサーリンク