要求用户输入一个数字,然后您可以在屏幕上打印出许多*
的数字,而不会有空格或换行符。您也可以在数字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("*");
}
}
}
答案 0 :(得分:0)
您应该使用
System.out.print("*");
而不是
System.out.println("*");
因为println
返回到行,而print
没有。
希望这可以帮到你。
你的课程在你的问题中需要一个名字:
class {
这在java中是错误的,所以你需要像这样声明你的类:
class nameClass {
//Your code
}
在这里:
答案 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("*");
}