假设我想给名为 involved 的变量赋值true,如果另一个变量(例如名为p的变量)的值在50到150之间。我该怎么做?
我尝试了以下操作:
导入java.util.Scanner;
public static void main(String[] args) {
Scanner scan = new Scanner(System.in);
int p = scan.nextInt();
boolean involved;
if (p >= 50 && p <= 150) {
involved = true;
System.out.println(included);
}
}
但是,当我尝试此操作时,我得到upp错误:变量p可能未初始化。我在做什么错了?
答案 0 :(得分:0)
将System.out.println(included);
更改为System.out.println(involved );
。因为未定义“包含”。
答案 1 :(得分:0)
涉及的任何内容都被错误地写为包含在您的代码中,或者您打算在sysout中放入字符串“ included”:
boolean involved;
if (p >= 50 && p <= 150) {
involved = true;
System.out.println(involved);
}
或
boolean involved;
if (p >= 50 && p <= 150) {
involved = true;
System.out.println("included");
}
答案 2 :(得分:0)
您可以尝试以下方法:
Scanner sc = new Scanner(System.in);
boolean involved;
System.out.println("Enter a number: ");
int n = sc.nextInt();
if (n >= 50 && n <= 150) {
involved = true;
} else {
involved = false;
}
System.out.println(involved);
答案 3 :(得分:0)
您也可以直接执行此操作而无需if-else:
Scanner scan = new Scanner(System.in);
int p = scan.nextInt();
boolean involved = (p >= 50 && p <= 150);
答案 4 :(得分:0)
您的代码看起来不错,除了println
语句(该语句试图打印不存在的变量)。
需要改进的地方:
try-with-resources
语句:try (Scanner scan = new Scanner(System.in))
。离开try
区域后,这会自动为您关闭扫描仪。此处更多信息:https://docs.oracle.com/javase/tutorial/essential/exceptions/tryResourceClose.html 这是最终代码:
public static void main(String[] args) {
try (Scanner scan = new Scanner(System.in)) {
int p = scan.nextInt();
boolean involved = (p >= 50 && p <= 150);
System.out.println(involved);
}
}
顺便说一句,您还应该检查用户输入的值确实是一个整数。如果我现在输入值“ a”,我将得到一个InputMismatchException
。最简单的方法是捕获该异常,向用户提供适当的错误消息,然后退出程序。
这是我要怎么做:
public static void main(String[] args) {
try (Scanner scan = new Scanner(System.in)) {
int p;
try {
p = scan.nextInt();
}catch(InputMismatchException e) {
System.out.println("Value not an integer");
return;
}
boolean involved = (p >= 50 && p <= 150);
System.out.println(involved);
}
}
希望这会有所帮助!