2013-11-08 5 views
-2

Я пытаюсь написать программу для создания фигуры на основе количества строк и столбцов, которые пользователь вводит с использованием символа, выбранного пользователем. Я с трудом пытаюсь понять, как написать заголовок метода для этого, поскольку передаются элементы как типа int, так и типа String. Любые предложения относительно того, как я должен писать этот заголовок?Методы передачи букв и цифр

Вот точные инструкции,

Способ по имени myShape, который печатает форму на основе количества столбцов, строк, и символ, который передается. Вызовите метод так, чтобы он печатал 7 строк в 2 столбцах с буквой 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

Что вы пробовали? с какими проблемами вы сталкиваетесь сейчас? Если возможно, разместите свой код. – MouseLearnJava

+0

Что у вас есть? Вероятно, вам нужны три метода: один для установки количества строк, один для установки количества колоний и один для установки символа. Вероятно, это будут аксессоры (также называемые «сеттеры»). –

+0

Моя первоначальная мысль заключалась в том, что она должна быть недействительной, но это не скомпилирует и не отправит сообщение об ошибке «required-int found-void». Затем я изменил void на int и получил ошибку "required: java.lang.String found: int". –

ответ

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); 
0

В вашем случае, если вы хотите это. Возвращаемый тип пустоты, так как все, что вы делаете печать

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

Вы можете использовать char вместо String.

Вы возвращаете тип void, если у вас нет класса формы, такого как Rectangle, тогда вы вернете прямоугольник. Пример:

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

0

Вам нужно 3 три вещи, чтобы сделать вашу форму:

  1. строки
  2. колонны
  3. символ

Итак, сначала вы должны спросить пользователя об этом. Чем вы можете нарисовать свою фигуру.

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

Как уже упоминалось, вы печатаете только на System.out, поэтому вашему методу ничья не нужно ничего возвращать.

Смежные вопросы