将返回的整数调用到所有其他方法

时间:2013-10-28 04:07:33

标签: java

我是非常新的(并且非常可怕)在java,并且有一个课程作业,你正在采用可靠的大小来缩放西雅图太空针塔的ascii图像。 成品应该看起来像这样: http://www.garfieldcs.com/wordpress/wordpress/wp-content/uploads/2009/09/Garfield-HS-AP-CS-space-needle-expected_output.txt

所以,我遇到的一个问题是你应该主要使用嵌套For循环和Multiple Methods。也就是说,我无法获得所有方法都能识别的相同整数( 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)方法不适用于arguments()

我真的很想有人回答这个问题,因为这项任务已经很晚了,说实话,我不能放心,因为我的所有资源都不会超过方法调用和返回。

3 个答案:

答案 0 :(得分:0)

第一件事:您在方法SizeQuestion中传递一个参数,这是不必要的。因为SizeQuestion不需要任何争论来执行其代码。所以改变循环如下:

public static int SizeQuestion()

将主要方法更改为:

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

它的作用:SizeQuestion()方法将从用户那里获取问题的大小并将其传递给ziggurat方法。

答案 1 :(得分: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); 
}

答案 2 :(得分:0)

您未提供所需参数 e.g。

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

    }