如何创建使用 Scanner 类注册用户输入的方法?



我需要用户输入一个半径值,这样我就可以计算圆的面积/周长。由于我不能真正理解扫描仪类,我似乎无法使它工作。我希望得到一些反馈来修正我的方法。

public static double leeTeclado() {
Scanner radio = new Scanner(System.in); // Creamos el objeto de scanner
System.out.println("Escribe el valor del radio: "); // Pedimos al usuario que introduzca un valor
radio = radio.nextDouble();       // El Scanner lee el valor

try {
radio = Double.parseDouble(radio.nextDouble());
}
catch (Exception e) {
System.out.println("Error en la lectura de datos");
}
return radio;
}

您所做的错误是为Scanner的实例分配了一个双值
那真的不管用
正确代码的示例如下
static double getRadius () {
Scanner scan = new Scanner (System.in);
System.out.println("Enter radius value : ");
// you will store the value of the radius in this variable 
double radius;
// try-catch block for eventual number format exceptions 
try {
radius = scan.nextDouble();
} catch (Exception exc) {
exc.printStackTrace();
}
// if no exception occured, return the value
return radius;
}

要更好地理解Scanner类,请查看以下链接:https://docs.oracle.com/javase/7/docs/api/java/util/Scanner.htmlhttps://www.w3schools.com/java/java_user_input.asp

希望我帮了你

java.util.Scanner的nextFloot((nextDouble((法可用于实现读取浮点输入的所需要求。

nextFloot((/nextDouble((的工作演示:

// File name: Demo.java
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.print("Enter the radius of circle: ");
double radius = sc.nextDouble();
double diameter = (radius * 2);
double perimeter = ((22 * diameter) / 7);
double area = ( (22 * radius * radius) / 7);
System.out.println("Radius = " + radius);
System.out.println("Diameter = " + diameter);
System.out.println("Perimeter = " + perimeter);
System.out.println("Area = " + area);
}
}

输出:

> javac Demo.java
> java Demo
Enter the radius of circle: 4
Radius = 4.0
Diameter = 8.0
Perimeter = 25.142857142857142
Area = 50.285714285714285

这一行有问题,因为您将double分配给Scanner类的实例:radio = radio.nextDouble();

尝试定义另一个类型为double的变量,并将radio.nextDouble()的结果分配给它:

public static double leeTeclado() {
Scanner radio = new Scanner(System.in); // Creamos el objeto de scanner
System.out.println("Escribe el valor del radio: "); // Pedimos al usuario que introduzca un valor
double valor = 0.0;
try {
valor = radio.nextDouble();       // El Scanner lee el valor
} catch (Exception e) {
e.printStackTrace();
}
return valor;
}

最新更新