扫描仪+循环单线

时间:2017-01-10 19:35:52

标签: java loops java.util.scanner

要求用户输入一个数字,然后您可以在屏幕上打印出许多*的数字,而不会有空格或换行符。您也可以在数字5,6和9中使用Scanner对象。

输入:

7

输出:

*******

我能做到这一点,但我不能在一行中完成所有的星号

import java.util.Scanner;

class  {

    public static void main(String[] args) {

        Scanner scan = new Scanner(System.in);
        int x;
        int i;

        System.out.println("Enter a number:");
        x = scan.nextInt();

        for (i = 0; i < x; i++) {
            System.out.println("*");
        }

    }
}

4 个答案:

答案 0 :(得分:0)

您应该使用

System.out.print("*"); 

而不是

System.out.println("*");

因为println返回到行,而print没有。

希望这可以帮到你。

注意

你的课程在你的问题中需要一个名字:

class  {

这在java中是错误的,所以你需要像这样声明你的类:

class  nameClass {
  //Your code
}

看看这里:

Getting Started

在这里:

Arrays

答案 1 :(得分:0)

您可以使用for循环,因此将println更改为仅print,以便在同一行打印*

import java.util.Scanner;

class Main {
  public static void main(String[] args) {
    Scanner sc = new Scanner(System.in);
    System.out.print("Please enter a number:");
    int inputNumber = sc.nextInt();

    for(int i=0;i<inputNumber;i++) {
      System.out.print('*');
    }
  }
}

试试here!

注意:您可以在for循环中初始化i,而不需要事先声明

答案 2 :(得分:0)

这是我的第一反应,希望能帮到你......

尝试

>>> list(allSubArrays([1,2,3]))
[[1], [1, 2], [1, 2, 3], [2], [2, 3], [3]]

如果您使用

System.out.print("*"); 

你的程序会跳线...

答案 3 :(得分:0)

要在一行中打印所有星号,请使用print代替println

Scanner scan = new Scanner(System.in);
int x;
int i;

System.out.println("Enter a number:");
x = scan.nextInt();

for (i = 0; i < x; i++) {
    System.out.print("*"); // <- note the difference here!
}

为什么呢?我们来看看docs

print(String)

  

打印一个字符串。如果参数为null,那么字符串&#34; null&#34;打印出来。否则,字符串的字符将根据平台的默认字符编码转换为字节,并且这些字节的写入方式与write(int)方法完全相同。

println(String)

  

打印字符串然后终止该行。此方法的行为就像调用print(String)然后调用println()

所以println(String)调用print(String)然后调用println()println()做了什么?

  

通过写行分隔符字符串来终止当前行。行分隔符字符串由系统属性line.separator定义,不一定是单个换行符(&#39; \ n&#39;)。

现在你看到了差异! println(String)打印字符串后会打印一个新行,而print(String)则没有!

这是您的代码的清理版本:

Scanner scan = new Scanner(System.in);
System.out.println("Enter a number:");
int x = scan.nextInt();

for (int i = 0; i < x; i++) {
    System.out.print("*");
}