我正在尝试编写一个程序,根据用户使用用户选择的符号输入的行数和列数来制作形状。我正在努力弄清楚如何为此编写方法头,因为有类型的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
答案 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()
在这种情况下,您必须在函数正文中声明rows
,columns
和letter
。
有了这样说......更有可能的是你需要移动你在函数之外输入的部分。在调用函数之前获取此信息(以相同的方式)。然后让你的函数头看起来像这样:
public static void myShape(int rows, int columns, String letter)
然后这样称呼:
myShape(rows,columns,letter);
答案 2 :(得分:0)
你需要3件事来描绘你的形状:
首先,您必须向用户询问这些内容。 你可以画出你的形状。
public static void main() {
ask
int rows = in.nextInt();
...
int cols = in.nextInt();
...
String symbol = in.nextString
drawSymbol( rows, cols, symbol )
}
如上所述,您只打印到System.out,因此您的draw方法不需要返回任何内容。