java - 已声明的变量无法解析
问题描述
即使在我开始表面积计算之前,双宽度也无法与 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 有所谓的块作用域
块内声明的任何变量{}
都不能在块外访问。您可以使用范围外的变量,但不能使用其他方式。您需要做的是在范围之外声明变量。您可能还想向用户抛出异常。
double width;
if(in.hasNextDouble()){
width = in.nextDouble();
System.out.println("Width/Height: " + width);
} else {
throw new IllegalArgumentException("Please enter only numbers");
}
推荐阅读
- python - 无法在 Python 2.7.5 上升级 Pip
- vb.net - VB.NET Isogram checker
- python - how to set a None value with django form
- laravel - some laravel route not changing to https
- laravel - 如何将 sql 转换为查询生成器 laravel
- django - Django Template Takes The Information From The Other One
- python - Delete the words between [], {}, and ()
- c - some confuse about elf.h
- java - 如何在 logback.xml 中获取 maven 项目版本
- c - 程序突然结束 - C