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; }

所以希望我能够从任何方法调用SIZE,假设我首先调用SizeQuestion。但是,我不确定我是否可以正常工作。代码的下一部分包括我提到的一些嵌套 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 回答