java - 已声明的变量无法解析

标签 java validation variables

双宽度无法与 int 墙一起解析,即使在我开始表面积计算之前,它已编译。

import java.util.Scanner;
public class Assignment_3_4 {
    public static void main(String[] args) {
    Scanner in = new Scanner(System.in);

    //Customer Name

    System.out.println("Enter your First Name");
    String Firstn = in.next();
    System.out.println("Enter your Last Name");
    String Lastn = in.next();
    System.out.println("Valued Customer Name: " + Firstn + " " + Lastn);

    //Wall Measurements

    System.out.println("Enter the Width");
    if(in.hasNextDouble()){
        double width = in.nextDouble();
        System.out.println("Width/Height: " + width);
    } else {
        System.out.println("Please enter only numbers");
    }
    System.out.println("Enter number of walls");
    if(in.hasNextInt()){
        int walls = in.nextInt();
        System.out.println("Number of Walls: " + walls);
    } else {
        System.out.println("Please enter only integers");
    }
    //Calculate Surface Area - Width Height and Length are all the same measurement
    double SA = ((width * width) * walls);
    System.out.println("Area to be Painted: " + SA + " square meters");

最佳答案

Java 有所谓的 block scope

在 block {} 内声明的任何变量都无法在 block 外部访问。您可以使用作用域之外的变量,但反之则不行。您需要做的是在范围之外声明变量。您可能还想向用户抛出异常。

double width;
if(in.hasNextDouble()){
    width = in.nextDouble();
    System.out.println("Width/Height: " + width);
} else {
    throw new IllegalArgumentException("Please enter only numbers");
}

关于java - 已声明的变量无法解析,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54857774/

相关文章:

validation - React-select 和 React-hook-form ,关注错误问题

javascript - 如何在 JavaScript 中验证输入为数字

java - 不能从静态上下文中引用非静态变量

java - 反序列化 Gson NullPointer?

java - 有没有一种方法可以读取一段文本并对其进行部分操作?

java - 返回二维数组

java - Hibernate删除操作不更新MySql

ruby-on-rails - 自定义验证方法中的虚拟属性始终为 nil

c - 在memcached中存储指针

javascript - 如何在 Javascript 中动态声明选择器?