如何在 java 中检查用户输入是浮点数还是整数?
How to check if user input is a float or int in java?
我需要编写一个 Java 程序来要求用户从键盘输入一个数字。输出应指明是正数还是负数、浮点数还是整数、偶数还是奇数。仅使用 IF...ELSE 语句。
到目前为止,这是我的代码:
import java.util.Scanner;
public class PracticeClass1 {
public static void main(String[] args) {
Scanner keyboard = new Scanner(System.in);
System.out.println("Enter a number: ");
int number = keyboard.nextInt();
float Number = keyboard.nextFloat();
if (number >= 1)
System.out.print(number + " is a positive,");
else
System.out.print(number + " is a negative,");
if (number%2 == 0 )
System.out.print(" even number");
else
System.out.print(" odd number ");
if (keyboard.hasNextInt())
System.out.print(" is an integer");
if (keyboard.hasNextFloat())
System.out.println(" is a floating number");
}
}
当您调用 keyboard.hasNextInt()
和 keyboard.hasNextFloat()
时,您已经获得了输入,这意味着这些方法无需检查。
相反,在获取数字之前执行此操作并将结果存储在 boolean
:
System.out.println("Enter a number: ");
boolean isInt = keyboard.hasNextInt();
// Also get rid of the two input prompts, so you don't need to enter 2 numbers,
// of which only the first one would be used.
float number = keyboard.nextFloat();
// Perform other checks
if(isInt)
System.out.println((int) number + " is an int");
else
System.out.println(number + " is an float");
这是一个简单的解决方案,将输入视为浮点数,然后分别检查它是 into 还是 float 并将其存储在局部变量中
Scanner keyboard = new Scanner(System.in);
System.out.println("Enter a number: ");
boolean isInt = false;
if (keyboard.hasNextFloat()) {
float number = keyboard.nextFloat();
if (number == (int) number) {
isInt = true;
}
boolean isPositive = false;
if (number > 0.0) {
isPositive = true;
}
if (isInt) {
int intNumber = (int) number;
System.out.print(intNumber + " is an integer");
if (number % 2 == 0)
System.out.print(" and is even");
else
System.out.print(" and is odd");
} else
System.out.print(number + " is a floating number");
if (isPositive)
System.out.print(" and is positive");
else
System.out.print(number + " and is negative");
} else {
System.out.println("Not a number");
}
我需要编写一个 Java 程序来要求用户从键盘输入一个数字。输出应指明是正数还是负数、浮点数还是整数、偶数还是奇数。仅使用 IF...ELSE 语句。
到目前为止,这是我的代码:
import java.util.Scanner;
public class PracticeClass1 {
public static void main(String[] args) {
Scanner keyboard = new Scanner(System.in);
System.out.println("Enter a number: ");
int number = keyboard.nextInt();
float Number = keyboard.nextFloat();
if (number >= 1)
System.out.print(number + " is a positive,");
else
System.out.print(number + " is a negative,");
if (number%2 == 0 )
System.out.print(" even number");
else
System.out.print(" odd number ");
if (keyboard.hasNextInt())
System.out.print(" is an integer");
if (keyboard.hasNextFloat())
System.out.println(" is a floating number");
}
}
当您调用 keyboard.hasNextInt()
和 keyboard.hasNextFloat()
时,您已经获得了输入,这意味着这些方法无需检查。
相反,在获取数字之前执行此操作并将结果存储在 boolean
:
System.out.println("Enter a number: ");
boolean isInt = keyboard.hasNextInt();
// Also get rid of the two input prompts, so you don't need to enter 2 numbers,
// of which only the first one would be used.
float number = keyboard.nextFloat();
// Perform other checks
if(isInt)
System.out.println((int) number + " is an int");
else
System.out.println(number + " is an float");
这是一个简单的解决方案,将输入视为浮点数,然后分别检查它是 into 还是 float 并将其存储在局部变量中
Scanner keyboard = new Scanner(System.in);
System.out.println("Enter a number: ");
boolean isInt = false;
if (keyboard.hasNextFloat()) {
float number = keyboard.nextFloat();
if (number == (int) number) {
isInt = true;
}
boolean isPositive = false;
if (number > 0.0) {
isPositive = true;
}
if (isInt) {
int intNumber = (int) number;
System.out.print(intNumber + " is an integer");
if (number % 2 == 0)
System.out.print(" and is even");
else
System.out.print(" and is odd");
} else
System.out.print(number + " is a floating number");
if (isPositive)
System.out.print(" and is positive");
else
System.out.print(number + " and is negative");
} else {
System.out.println("Not a number");
}