1

私はJavaで非常に新しい(そして確かにひどい)ので、シアトルスペースニードルのASCII画像を拡大縮小するために実際のサイズを取得しているクラスの割り当てがあります。完成品は次のようになります: http://www.garfieldcs.com/wordpress/wordpress/wp-content/uploads/2009/09/Garfield-HS-AP-CS-space-needle-expected_output.txt

したがって、私が抱えている問題は、主にネストされた For ループと複数のメソッドを使用することになっているということです。つまり、すべてのメソッドで認識される同じ整数 ( SIZE ) を取得できません。現在、これは私が持っているものです:

public static int SizeQuestion(int SIZE) {
Scanner sc = new Scanner(System.in);
System.out.println("Please enter the size.");
SIZE = sc.nextInt();
return SIZE; }

したがって、最初にSizeQuestionを呼び出すと仮定すると、任意のメソッドからSIZEを呼び出すことができれば幸いです。しかし、これが正しく機能するかどうかはわかりません。コードの次の部分には、前述のネストされた for ループがいくつか含まれていますが、実際にSIZE変数を使用しているかどうかはわかりません。

public static void ziggurat(int SIZE) {
for(int line = 1; line <= SIZE; line++) {

    for(int i = 1; i <= (SIZE - line) * 4; i++) {
System.out.print(" ");
}
System.out.print("   ");

for(int i = 1;i <= (line - 1) * 4; i++) {
    System.out.print(" ");}
    System.out.println("||");}

for(int line = 1; line <= SIZE; line++) {

for(int i = 1; i <= (SIZE - line) * 4; i++) {
System.out.print(" ");}
System.out.print("___/");

for(int i = 1;i <= (line - 1) * 4; i++) {
System.out.print(":");}
System.out.print("||");

for(int i = 1; i <= (line - 1) * 4; i++) {
System.out.print(":");}
System.out.print("\\___");

System.out.println();}

書式が乱雑で申し訳ありませんが、Java コードはコピー アンド ペーストを好みません。

問題は、メソッドを呼び出すコードの「簡単な」部分が機能しないことです。

public static void main(String []args) {
SizeQuestion();
ziggurat(); 
}

Eclipse で次のようなエラーが表示されます。

Project1 型のメソッド SizeQuestion(int) は、引数 () には適用されません。

この割り当てはすでに遅れており、正直なところ、すべてのリソースがメソッドの呼び出しと戻りに及ばないため、安心できないため、誰かにこれに答えてもらいたいと思っています。

4

3 に答える 3

0

まず第一に、SizeQuestion必要のないメソッドに引数を渡しています。SizeQuestion はそのコードを実行するのに引数を必要としないためです。したがって、そのループを次のように変更します。

public static int SizeQuestion()

そして、あなたの主な方法をこれに変更してください:

public static void main(String []args) {
    ziggurat(SizeQuestion()); 
}

機能:SizeQuestion()メソッドはユーザーからの質問のサイズを取得し、それをzigguratメソッドに渡します。

于 2013-10-28T04:14:28.717 に答える
0

メソッドは、何かを行う必要がある場合にのみ引数を取る必要があります。あなたの場合、SizeQuestion整数の引数を取り、それに対して何もしません。このメソッドが行う必要があるのは、ユーザー入力値を返すことだけです。したがって、SizeQuestion メソッドを変更して、int 引数を削除するだけです。

public static int SizeQuestion() {
Scanner sc = new Scanner(System.in);
System.out.println("Please enter the size.");
int size= sc.nextInt();
return size; 
}

メイン メソッドは次のようになります。

public static void main(String []args) {
int size = SizeQuestion();
ziggurat(size); 
}
于 2013-10-28T04:15:17.843 に答える
0

必要なパラメーターを提供していません。

public static void main(String []args) {
  SizeQuestion(1);
  ziggurat(1); 
}

問題を解決するために、SIZE 変数をクラス変数またはインスタンス変数として定義できます。例えば

public class CalculateSize{
        public static int SIZE = 0;

          public static int SizeQuestion() {

          Scanner sc = new Scanner(System.in);
          System.out.println("Please enter the size.");
          SIZE = sc.nextInt();
          return SIZE; 
        }

       public static void ziggurat() {
        for(int line = 1; line <= SIZE; line++) {

        for(int i = 1; i <= (SIZE - line) * 4; i++) {
        System.out.print(" ");
        }
        System.out.print("   ");

        for(int i = 1;i <= (line - 1) * 4; i++) {
            System.out.print(" ");}
            System.out.println("||");}

        for(int line = 1; line <= SIZE; line++) {

        for(int i = 1; i <= (SIZE - line) * 4; i++) {
        System.out.print(" ");}
        System.out.print("___/");

        for(int i = 1;i <= (line - 1) * 4; i++) {
        System.out.print(":");}
        System.out.print("||");

        for(int i = 1; i <= (line - 1) * 4; i++) {
        System.out.print(":");}
        System.out.print("\\___");

        System.out.println();
       }

      public static void main(String []args) {
      SizeQuestion();
      ziggurat(); 
      }

    }
于 2013-10-28T04:16:07.683 に答える