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

■ このスレッドは過去ログ倉庫に格納されています
1以下、5ちゃんねるからVIPがお送りします2020/03/06(金) 00:51:32.670ID:sVoWCQ8d0
public static void main(String[] args)の「args」に反応して重複エラー吐くんだがなんで?

2以下、5ちゃんねるからVIPがお送りします2020/03/06(金) 00:52:56.816ID:blAWMgpr0
二日酔いじゃね

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

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

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

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

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

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

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

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

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

12以下、5ちゃんねるからVIPがお送りします2020/03/06(金) 02:14:38.200ID: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になる値を求めよ

という感じ

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

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

15以下、5ちゃんねるからVIPがお送りします2020/03/06(金) 02:20:31.018ID: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.945ID:fJbBYbqc0
mainのargsじゃだめなの?
javaの実行時に渡す値がmain(String[] args)だけど

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

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

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

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

21以下、5ちゃんねるからVIPがお送りします2020/03/06(金) 02:41:23.044ID: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.826ID:sVoWCQ8d0
多分どっか間違ってるんだと思うけどわかる人いたら教えてくださいm(_ _)m

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

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

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

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

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

28以下、5ちゃんねるからVIPがお送りします2020/03/06(金) 02:49:55.854ID:sVoWCQ8d0
>>26
あっ動いた!!!!これだ!!!!すごい!!!!!

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

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

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

31以下、5ちゃんねるからVIPがお送りします2020/03/06(金) 02:54:16.266ID: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.907ID:sVoWCQ8d0
>>31
ああなるほど!!
スゲーわかりやすい!ありがとう!

33以下、5ちゃんねるからVIPがお送りします2020/03/06(金) 02:56:47.626ID:3MR7LVfH0
>>29
何の問題か知らないけど
関数の働きを理解してるか問われてるんじゃないだろうか

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

34以下、5ちゃんねるからVIPがお送りします2020/03/06(金) 02:56:54.704ID:lAygi0Igd
今どきjavaってw

35以下、5ちゃんねるからVIPがお送りします2020/03/06(金) 02:57:55.201ID:sVoWCQ8d0
ちなみにこれ問1.2.3とあって
問1 Juiceの出力結果が5になる因数の設定を記述せよ

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

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

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

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

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

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

39以下、5ちゃんねるからVIPがお送りします2020/03/06(金) 03:05:48.358ID:sVoWCQ8d0
>>37
そうだったんだよ!ようやくわかったよ

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

親切なvipperたちありがとー

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

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

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

43以下、5ちゃんねるからVIPがお送りします2020/03/06(金) 03:14:11.738ID:sZmrPSzed
かなしいね

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

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

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

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

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

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

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

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

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

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

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

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

55以下、5ちゃんねるからVIPがお送りします2020/03/06(金) 03:55:32.548ID:sVoWCQ8d0
帰ってきた なになに……んん?

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

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

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

58以下、5ちゃんねるからVIPがお送りします2020/03/06(金) 04:04:23.474ID:sVoWCQ8d0
ググった感じ解答欄は
javac ジュースの作り方
java 1,+,2

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

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

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

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

62以下、5ちゃんねるからVIPがお送りします2020/03/06(金) 04:27:05.166ID:sVoWCQ8d0
プログラムはまずmainメソッドが実行されるけど
mainメソッドは特別で実行時に外部から情報を受け取れる
その時受け取る情報が引数で
値を指定した引数がコマンドライン引数
書き方はjavac mainメソッド 値1,値2,値3
引数はargs[]に入るので
この問題の場合 答えは javac 1,+,2

って理解であってるる

63以下、5ちゃんねるからVIPがお送りします2020/03/06(金) 04:28:57.273ID:sVoWCQ8d0
>>62
書き方は
javac mainメソッド.java
java 値1,値2,値3,

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

ですた

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

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

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

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

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

69以下、5ちゃんねるからVIPがお送りします2020/03/06(金) 05:58:55.180ID:+tp9+AJ5d
javac ジュースの作り方.java
java 2 + 3


問2は1 + 9でも2 + 8でも
問3も同じく

■ このスレッドは過去ログ倉庫に格納されています