初めまして。プログラミングを初めて半月もたっていない初心者です。
変数a, 変数b
があり、
キーボードからは
SET1 or SET2 , 数値
の2つを入力
実現したいこと
キーボードから
SET1 10と入力したら、
出力結果が 10 0
SET2 40と入力したら、
出力結果が 0 40
というプログラムを作りたいです。
arraylistだとできるのかなどいろいろ調べたのですが解決策がでてこず、、、
いろいろ間違っていると思うのですが、なにかしらヒントをを教えていただけますと幸いです。
該当のソースコード
import java.util.Scanner; public class Sample { public static void main(String[] args) { Scanner scanner = new Scanner(System.in); int a = 0; int b = 0; int num = scanner.nextInt(); if (SET1()) { System.out.println(a +" "+ b); } if (SET2()) { System.out.println(a +" "+ b); } } public int SET1() { return a = num; } public int SET2() { return b = num; } }
SET1()もSET2()もスコープ外の変数がいきなり使われてるというのは理解できますか?(IDEで実行前に検出できるレベルです)
コンパイルしてみましたか。
やりたいこととコードだけ提示して「悪いところ全部教えて」だと質問じゃなく作業依頼と変わらないので、起きてる問題や解決したいことをしぼったほうが良いです。
> arraylistだとできるのかなどいろいろ調べたのですが解決策がでてこず、、、
プログラミングは、何かを使うと理解していなくても自動的にできる訳ではないのですけれども。
と言いますか(すでに指摘をいただいていますが)コードがムチャクチャです。いきなり課題をこなそうとせず、基本に立ち戻ってひとつひとつ理解して進めましょう。(と書いても伝わらないのでしょうねぇ、、、)
SET1(), SET2() というメソッドは必要なのでしょうか。
なんなら変数 a , b もその用途なら要らなかったりもしますが。
まぁ、もともとの問題が、
> SET1 10と入力したら、
> 出力結果が 10 0
>SET2 40と入力したら、
>出力結果が 0 40
”SET1”と”SET2”で、出力に際して0と併せて出力を反転させるだけなのかどうか不確かですね。