3

我正在回答一个编程入门课程的问题,但在阅读了我的笔记、Big Java 书籍并在线查看之后,我无法找到从哪里开始。

看起来应该很简单,但我只需要开始。所有这些都是针对 Java 的,并且正在 Eclipse 中进行。

任务是输入一个名称(“名称”)和一个数字(int x),并在一行显示“名称”x 次,在另一行显示 x-1 次,依此类推,直到您名称只显示一次。看起来它应该是一个反向累加器,但我无法启动我的方法。我该如何开始?我知道我不能像在 python 或其他语言中那样将 Java 中的字符串相乘,但是如何在不构建数组或输入的情况下打印“名称”x 次

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

任何建议表示赞赏。我是这方面的新手。谢谢!

4

10 回答 10

2

你需要一个循环,这是编程语言的一个共同特征。

仔细看看javafor循环。

附加提示:

System.out.println("test")在一行中打印它的参数,System.out.print("test")而不添加CR/LFafter test

于 2011-04-13T07:07:53.380 回答
1

您应该阅读有关java 流控制语句的内容。forandwhile结构可以让你做你想做的事。

于 2011-04-13T07:08:16.950 回答
1

您可以通过使用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);
            }


    }
}

希望这可以帮助。

于 2011-04-13T07:10:01.207 回答
1

您的方法获取一个带有名称和计数的字符串。使用一个 for 循环来计数和另一个重复名称值,您应该能够获得您所追求的输出。

System.out是一个打印流,它既println()要输出以换行符结尾的行,又要print()输出不以换行符结尾的字符串。

于 2011-04-13T07:11:34.067 回答
0

第一个想法:你需要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
}
于 2011-04-13T07:29:00.610 回答
0

使用计数到 x 的外循环和计数到 (x - 外循环计数器) 的内循环。请注意常见的“一次性”错误。

于 2011-04-13T07:14:10.023 回答
0

Java 没有内置的字符串重复是正确的。但是您可以定义自己的方法来完成此操作。

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

你想使用这个“运算符”而不是把所有东西放在一个大代码块中,这对你来说很好。这有助于保持程序的可读性。

于 2011-04-13T07:15:50.397 回答
0
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;
}
于 2014-11-06T09:50:37.143 回答
0
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

}
于 2014-02-21T04:50:15.713 回答
0
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");
   }
}
于 2017-11-13T16:27:23.587 回答