传递字母和数字的方法

时间:2013-11-08 02:19:23

标签: java methods

我正在尝试编写一个程序,根据用户使用用户选择的符号输入的行数和列数来制作形状。我正在努力弄清楚如何为此编写方法头,因为有类型的int类型和String类型被传递。有关如何编写此标题的任何建议?

以下是具体说明,

  

名为myShape的方法,它根据传递的列数,行数和符号打印形状。调用方法,使其在2列中打印7行,字母为X.然后使用您选择的行,列和符号再次调用。

这是我到目前为止提出的代码:

import java.util.Scanner;

public class MethodLab2 {
  public static void main(String[] args) {
    myShape(7, 2, "X");
    int rows = myShape(7, 2, "X");
    int columns = myShape(7, 2, "X");
    String letter = myShape(7, 2, "X");
    myShape(rows, columns, letter);
  } // end main

    public static int myShape(int rows, int columns, String letter) {
    Scanner input = new Scanner(System.in);
    System.out.println("How many rows would you like in your shape?");
       rows = input.nextInt();
    System.out.println("How many columns would you like in your shape?");
       columns = input.nextInt();
    System.out.println("What letter would you like in your shape?");
       letter = input.next();

    int count1;
    int count2;
    for(count1 = 1; count1 <= rows; count1++) {
      for (count2 = 1; count2 <= columns; count2++) 
          System.out.print(letter);
          System.out.println(); 
    } // end outter loop
    } // end myShape
  } // end class 

3 个答案:

答案 0 :(得分:0)

在你的情况下你想要这个。返回类型为void,因为您所做的只是打印

public static void makeShape(int x, int y, char c) {
    // do something
    System.out.println("This is the new Shape");
}

您可能希望使用char代替String

除非您有像Rectangle这样的形状类,否则返回一个void类型,然后返回一个矩形。例如:

public static Rectangle makeShape(int x, int y, char c) {
    // do something
    return new Rectangle();
}

如果您想要String形状的表示

public static String makeShape(int x, int y, char c) {
    // example
    switch (c) {
        case '/' : return "some string representation of shape"; break;
        case '*' : return "some string representation of shape"; break;
    }
}

注意:一旦在方法的某处有return关键字,return的类型,您必须确保您的方法签名返回相同的类型。如果没有return返回类型void

答案 1 :(得分:0)

public static int myShape(int rows, int columns, String letter)

这是您当前的方法标题。我们来看几个部分......

首先,第三个单词int。这表示您将从此函数返回int。如上所述,您的函数不返回任何值。要表示您不会从函数返回值,请使用void作为返回类型。

其次,参数(在括号内)。这表示您要发送给该功能的值。你的函数实际上是使用Scanner自己获取所有这些值,所以在调用函数时我们不需要接受这些参数。我们不需要接受任何参数,因此我们可以将括号留空。

因此,在不更改函数体的情况下,要使标题与实际函数匹配,您需要将其更改为:

public static void myShape()

在这种情况下,您必须在函数正文中声明rowscolumnsletter


有了这样说......更有可能的是你需要移动你在函数之外输入的部分。在调用函数之前获取此信息(以相同的方式)。然后让你的函数头看起来像这样:

public static void myShape(int rows, int columns, String letter)

然后这样称呼:

myShape(rows,columns,letter);

答案 2 :(得分:0)

你需要3件事来描绘你的形状:

  1. 符号
  2. 首先,您必须向用户询问这些内容。 你可以画出你的形状。

    public static void main() {
      ask
      int rows = in.nextInt();
      ...
      int cols = in.nextInt();
      ...
      String symbol = in.nextString
      drawSymbol( rows, cols, symbol )
    }    
    

    如上所述,您只打印到System.out,因此您的draw方法不需要返回任何内容。