我正在尝试编写一个简单的代码,该代码连续检查用户输入的数字是正数还是负数,并且所有数字都在2行上。 第一行是用户输入,第二行是输出。
我是编码的初学者,也不是一个专业人士,但是我现在已经将Scanner对象放入while循环中,它检查用户输入是否为正。如果为负,则将停止程序。
import java.util.Scanner;
public class basic {
public static void main(String[] args){
int numb;
Scanner scanner = new Scanner(System.in);
System.out.println("Fill in a random number which ain't negative!");
while((numb = scanner.nextInt()) > 0) {
System.out.println("Again!");
}
{
System.out.println("This is a negative!");
System.exit(1);
}
}
}
我想要做的是将其作为输出,并且仅在两行上显示:
1 2 3 4 5
Again!
如果我在行上输入一个负数,它将更改“再次!”改为“这是负面的!”
1 2 3 4 5 6 -8
This is a negative!
但是现在有了代码,我只能将其作为输出,而不仅仅是两行:
1
Again!
2
Again!
-3
This is a negative!
答案 0 :(得分:0)
这是控制台输出,因此无法覆盖。 但是,如果您确实希望在控制台上打印出所需的o / p,则可以使用列表并不断向其推送数字并打印列表中的所有项目。
答案 1 :(得分:0)
您可以使用\r
重写最后一行。考虑一下:
System.out.println("\r"+yourOutput+" > ")
它用这一行替换了控制台中的最后一行,这就是通过:D来完成在Linux中加载栏的方式。使用此方法显示以前的输入/数字。用户输入将在第二行。当用户按下Enter键并且您的程序已将用户输入作为字符串获取后,对其进行处理并再次执行相同的操作,这一次yourOutput
已更新为新信息:
System.out.println("\r"+yourOutput+" > ")
答案 2 :(得分:0)
让我欢迎您阅读关于StackOverflow的第一篇文章!
让Java应用程序清除控制台输出不常见。话虽这么说,有可能,但并非没有调用 OS命令。如评论中所述,如果您这样做的话,这将超出初学者的材料。
但是,如果要尝试,如here所示,您可以通过执行本机OS命令来清除控制台。如果您使用以下代码(通过链接进行复制,并进行了较小的修改)
public static void clrscr(){
//Clears Screen in java
try {
if (System.getProperty("os.name").contains("Windows"))
new ProcessBuilder("cmd", "/c", "cls").inheritIO().start().waitFor();
else
Runtime.getRuntime().exec("clear");
} catch (Exception e) {}
}
您可以在代码中使用 clrscr() 来调用此,并且您应该可以清除屏幕。
现在查看您的代码,您将不能只使用它,因为您将清除输出,从而清除过去的数字。如果您希望按照描述的方式来显示所有用户输出的位置,则每次清除屏幕时都需要重新打印其所有条目。因此,每次您获得用户输入时:
如果您有任何疑问,请告诉我。 :-)