首页 > 解决方案 > 我如何在 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 构建它?

标签: 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");
    }
}

推荐阅读