![](/img/trans.png)
[英]How to return a variable after assigning it a value in an If/Else statement in Java?
[英]Assigning a value to a variable using if statement
假设如果另一个变量(例如名为 p 的变量)的值介于 50 和 150 之间,我想为涉及的变量分配值 true。我该怎么做?
我尝试了以下方法:
导入 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);
}
}
然而,当我尝试这个时,我得到了错误:变量 p 可能没有被初始化。 我究竟做错了什么?
更改System.out.println(included);
到System.out.println(involved );
. 因为“包含”没有定义。
所涉及的要么是错误地包含在您的代码中,要么是您打算在 sysout 中放置一个字符串“包含”:
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");
}
你可以试试这个:
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);
您也可以不使用 if-else 直接执行此操作:
Scanner scan = new Scanner(System.in);
int p = scan.nextInt();
boolean involved = (p >= 50 && p <= 150);
您的代码看起来不错,除了println
语句,它试图打印一个不存在的变量。
需要改进的几点:
try-with-resources
语句: try (Scanner scan = new Scanner(System.in))
。 离开try
块后,这会自动为您关闭 Scanner。 更多信息在这里: 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);
}
}
顺便说一句,您还应该检查用户输入的值是否真的是 int。 如果我现在输入值“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);
}
}
希望这可以帮助!
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.