Напишите метод для распечатки строки «Имя» несколько раз - PullRequest
3 голосов
/ 13 апреля 2011

Я отвечаю на вопрос для класса «Введение в программирование» и не могу - после прочтения моих заметок, большой книги по Java и поиска в Интернете - узнать, с чего начать.

Кажется, это должно быть очень просто, но мне просто нужно начать. Все это для Java и работает в Eclipse.

Задача состоит в том, чтобы взять имя («Имя») и число (int x) и отобразить «Имя» x раз в одной строке, x-1 раз в другой строке и т. Д. И т. Д. пока вы не отобразите имя только один раз. Кажется, что это должен быть обратный аккумулятор, но у меня проблемы с запуском моего метода. Как мне начать? Я знаю, что не могу умножить строки в Java, как вы можете в Python или других языках, но как я могу напечатать «Имя» x раз без создания массива или ввода

System.out.println("name" + " " + "name" + " "...).

Любые предложения приветствуются. Я новичок в этом. Спасибо!

Ответы [ 10 ]

2 голосов
/ 13 апреля 2011

Вам необходим цикл , общая черта языков программирования.

Внимательно посмотрите на цикл java for.

Дополнительная подсказка:

System.out.println("test") выводит аргумент в одну строку, в то время как System.out.print("test") не добавляет CR/LF после test.

1 голос
/ 13 апреля 2011

Ваш метод получает строку с именем и счетчиком. Используя один цикл for для подсчета и другой для повторения значения имени, вы сможете получить результат, который вам нужен.

System.out - это поток печати, и он имеет и println() для вывода строки, оканчивающейся переводом строки, и print() для вывода строки без окончания строки.

1 голос
/ 13 апреля 2011

Вы можете сделать это, используя System.out.print и System.out.println.

Вот пример кода: (не тот код, который вы хотите, просто ОБРАЗЕЦ)

import java.io.*;

public class StringNameTest
{
    public static void main(String args[])
    {
            String strNumber = "";
            String strName = "";
            int intNumber;
            try 
            {
                //  open up standard input
                BufferedReader br = new BufferedReader(new InputStreamReader(System.in));

                //  prompt the user to enter their name
                System.out.print("Enter your name: ");
                strName = br.readLine();

                System.out.print("Enter the number of times you want to print your name: ");
                strNumber = br.readLine();
                intNumber = Integer.parse(strNumber);

                for (row = 0; row < intNumber; row++)
                {
                    for(col = 0; col < intNumber; col++)
                        System.out.print(strName + " ");

                    System.out.println("");
                }
            } 
            catch (Exception ex) {
                System.out.println(ex.getMessage());
                System.exit(1);
            }


    }
}

Надеюсь, это поможет.

1 голос
/ 13 апреля 2011

Вы должны прочитать о операторах управления потоком Java .Конструкции for и while позволят вам делать то, что вы хотите.

0 голосов
/ 13 ноября 2017
public class WithoutLoop
{
      static int count;
   public static void repeat(String s)
   {
       while(count <= 10)
       {
           System.out.println(s);
           count++;
       }
   }
   public static void main(String[] args)
   {
        repeat("hello");
   }
}
0 голосов
/ 06 ноября 2014
int x;
int y = 1;

x = scanner.nextInt();

for (int i = 1; i <= x; i++) {
    for (int j = 1; j <= y; j++) {
        System.out.print("O");
    }
    System.out.println();
    ++y;
}
0 голосов
/ 21 февраля 2014
public class test{

    public static void main(String[] args){

        int i = 0;
        int j = 20;

   for(i = 1; i <= j; i++){

          System.out.println("My Name");


   } //ends for loop

     // use system.out.print("") for same line 


}    //ends static void main

}
0 голосов
/ 13 апреля 2011

Первая мысль: вам нужно n строк.Итак, введите цикл.

for (int i = 0; i < n; ++i)
{

Затем: вам нужно вывести в строку i строку n - i раз.Введите вложенный цикл:

     for (int j = 0; j < n - i; ++j)
     {

Затем начните печатать имя:

           System.out.print(name + " ");
     }

Обратите внимание, что я не использовал println, потому что мы хотим, чтобы все имена были в одной строке
Теперь вам нужно завершить строку, когда мы напечатали n - i раз:

     System.out.println();

Закройте наш внешний цикл:

}

И если вы нене знаю, как заставить программу спрашивать имя пользователя и целое число n:

String name = null;
int n = 0;
try
{
    BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
    System.out.print("Enter the name: ");
    name = br.readLine();
    System.out.print("How many times (n): ");
    n = Integer.parseInt(br.readLine());
} catch (Exception e)
{
    e.printStackTrace();
    System.exit(-1); // exit!, there was an error
}
0 голосов
/ 13 апреля 2011

Правильно, что в Java нет встроенного повторения строк.Но вы можете определить свой собственный метод, который делает именно это.

public static String repeated(String s, int times) {
  StringBuilder sb = new StringBuilder();
  // TODO: append /s/ to /sb/ for /times/ times.
  return sb.toString();
}

Хорошо, что вы хотите использовать этот "оператор" вместо того, чтобы собирать все в один большой блок кода.Это помогает сделать ваши программы читабельными.

0 голосов
/ 13 апреля 2011

Используйте внешний цикл, который считает до x, и внутренний цикл, который считает до (x - счетчик внешнего цикла).Помните об общей ошибке "one off".

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...