如何在java中为ReadKey使用bets(if)
我是一名java初学者。我想建立一个程序,从用户那里得到一个数字,然后说它是素数还是素数 Java代码:如何在java中为ReadKey使用bets(if),java,Java,我是一名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
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");
}
}
}
import java.util.Scanner;
导入静态java.lang.System.out;
公共类素数
{
公共静态布尔素数(int n)
{
对于(int i=2;i只需检查按下的键是否为y(是),如果是,则继续循环
static void main(String[] args)
{
ConsoleKey response;
do
{
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.Write("do you want to continue? [y/n] ");
response = Console.ReadKey(false).Key;
}
while (response == ConsoleKey.Y);
}
您不能直接将C#键盘按键检测映射到Java
另外,只能通过Java AWT/Swing GUI程序中的键侦听器来检查按下了哪个键。但是,您的程序是一个控制台程序,Java没有任何机制来检测控制台应用程序中按下了哪个键。有关更多信息,请参阅
现在,您可以读取某个按键产生的字符串
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");
}
}
我还纠正了素数方法
import java.util.Scanner;
import static java.lang.Math.abs;
import static java.lang.System.out;
public class Prime {
public static boolean prime(int n) {
for (int i = 2; i < n/2; i++) {
if (n % i == 0) {
return false;
}
}
return true;
}
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
while (true) {
try {
out.println("enter a number: ");
int x = Integer.parseInt(input.nextLine());
if (prime(x)) {
out.println(x + " is a prime number");
} else {
out.println(x + " isn't a prime number");
}
} catch (NumberFormatException e) {
System.out.println("NumberFormatException");
}
out.println("do you want to continue");
if (!input.nextLine().equals("Y")) break;
}
}
}
import java.util.Scanner;
导入静态java.lang.Math.abs;
导入静态java.lang.System.out;
公共类素数{
公共静态布尔素数(int n){
对于(int i=2;i
我想用Java构建它这不是一个真正的答案:(1)它不是Java代码,它是C#,(2)您刚刚将OP问题中的while
循环替换为do while
。此外,所有小于或等于1的整数都被程序视为素数。@JanezKuhar您的第一条评论不是真的。有趣的“更正”因为关于负数是否可以是素数有各种各样的观点(所有观点都是有效的)-看,是的,现在我不确定abs。但我想迭代足够了,直到我可以使用I
而不是I是的,我认为你是对的。在这两种情况下,我们都检查数字是否为偶数。加上1。equalsIgnoreCase
将不再需要调用toLowerCase
。
import java.util.Scanner;
import static java.lang.Math.abs;
import static java.lang.System.out;
public class Prime {
public static boolean prime(int n) {
for (int i = 2; i < n/2; i++) {
if (n % i == 0) {
return false;
}
}
return true;
}
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
while (true) {
try {
out.println("enter a number: ");
int x = Integer.parseInt(input.nextLine());
if (prime(x)) {
out.println(x + " is a prime number");
} else {
out.println(x + " isn't a prime number");
}
} catch (NumberFormatException e) {
System.out.println("NumberFormatException");
}
out.println("do you want to continue");
if (!input.nextLine().equals("Y")) break;
}
}
}