Java 为什么a1可变剂量不是初始剂量?
为什么变量a1不带首字母?我在if条件下定义了它,但不是初始的Java 为什么a1可变剂量不是初始剂量?,java,Java,为什么变量a1不带首字母?我在if条件下定义了它,但不是初始的 import java.util.InputMismatchException; import java.util.Scanner; public class Input { static Scanner input; public Input() { input = new Scanner(System.in); System.out.println("Welcome ");
import java.util.InputMismatchException;
import java.util.Scanner;
public class Input {
static Scanner input;
public Input() {
input = new Scanner(System.in);
System.out.println("Welcome ");
}
public static Riazy GetInfo() throws InputMismatchException {
System.out.println("Enter the first Number ");
if(input.hasNextDouble()==false){
throw new InputMismatchException("Erorr...");
} else {
double a1 = input.nextDouble();
}
System.out.println("Enter the second Number ");
double a2 = input.nextDouble();
boolean a4 = input.hasNextDouble();
if(a4==false){
throw new InputMismatchException("Erorr...");
}
Riazy riazy = new Riazy(a1 , a2);
return riazy;
}
}
正如Mike'Pomax'Kamermans所说:您没有正确地确定变量的范围
不会编译
公共静态Riazy GetInfo抛出输入不匹配异常{
System.out.Printl输入第一个数字;
if!input.hasNextDouble{
抛出新的InputMismatchExceptionError。。。;
}
否则{
双a1=输入。下一个加倍;
//a1只能在这个街区内到达
}
System.out.println输入第二个数字;
double a2=输入。下一个加倍;
布尔值a4=input.hasNextDouble;
如果!a4{
抛出新的InputMismatchExceptionError。。。;
}
/*
*不会编译,因为a1已在if中定义
*else块,此处不可见
*/
返回新的Riazya1、a2;
}
编撰
公共静态Riazy GetInfo抛出输入不匹配异常{
System.out.Printl输入第一个数字;
double a1=null;//a1在此范围内可见
if!input.hasNextDouble{
抛出新的InputMismatchExceptionError。。。;
}
否则{
a1=输入。下一个双倍;
}
System.out.println输入第二个数字;
double a2=输入。下一个加倍;
布尔值a4=input.hasNextDouble;
如果!a4{
抛出新的InputMismatchExceptionError。。。;
}
返回新的Riazya1、a2;
}
我建议您阅读以下内容:,因为您没有正确确定范围。它不存在于else块之外。它只在else块内起作用。拿走其他的,你不需要它。可能是