java - 我如何在 java 中为 ReadKey 使用 bets(if)
问题描述
我是一个初学者的java开发人员。我想构建一个从用户那里获取数字的程序,然后说它是否是素数。
Java代码:
import java.util.Scanner;
import static java.lang.System.out;
public class prime
{
public static boolean prime(int n)
{
for(int i = 2; i <n ; i++)
{
if(n % i == 0){
return false;
}
}
return true;
}
public static void main(String[]args)
{
Scanner input = new Scanner(System.in);
out.println("enter a number: ");
int x = input.nextInt();
if(prime(x)){
out.println(x + "is a prime number");
}else{
out.println(x + "isn't a prime number");
}
}
}
但是,我想声明一个布尔变量,然后询问用户是否要继续,然后用户说是或否。我已经用 C# 编写了这段代码:
C# 代码
class Program
{
static bool prime(int n)
{
for(int i = 2; i < n ; i++)
{
if(n % i == 0)
{
return false;
}
}
return true;
}
static void main(String[]args)
{
Bool permit = true;
While(permit)
{
Console.WriteLine(“enter a number”)
int x = int.Parse(Console.ReadLine());
if(prime(x))
{
Console.WriteLine(x + "is a prime number");
}
else
{
Console.WriteLine(x + " isn't a prime number");
}
Console.WriteLine(“do you want to continue”);
Permit = Console.ReadKey.Key() == ConsoleKey.Y?true:false;
}
}
}
如何用 Java 构建它?
解决方案
您不能将 C# 键盘按键检测直接映射到 Java。
AFAIK,检查哪个键被按下只能通过Java AWT/Swing GUI 程序[如何编写键监听器] 中的键监听器来完成。但是,您的程序是一个控制台程序,Java 没有任何机制来检测在控制台应用程序中按下了哪个键。有关更多信息,请参阅此问题。
现在你可以做的是阅读String
某个按键产生的。像这样的东西:
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
boolean permit = true;
while (permit) {
// your existing code
out.println("do you want to continue?");
permit = input.next("y|Y").equalsIgnoreCase("y");
}
}
推荐阅读
- python - python Popen 不捕获程序的标准输出。不确定为什么
- ruby - “gem install therubyracer”失败并显示错误消息“libv8 需要安装 python 2 才能构建”
- python - 预处理以使用 python opencv 查找两个图像之间的差异
- docker - 几乎`docker pull`命令挂起-重试(5分钟后)-完成
- java - 将一列值转换为键,将另一列值转换为值
- solidity - 我收到了一个像“TypeError:”block.blockhash()“已被弃用,取而代之“blockhash()”之类的错误
- docker - Grails Gradle Docker 插件 bmuschko.github.io/gradle-docker-plugin/ throws 无法设置未知属性“env”
- jquery - 无法将行添加到 jQuery 数据表
- laravel - Laravel Nova - 表单发布前的确认对话框
- sql-server - 在 SSRS 报告中隐藏空值