Java 即使在if-else语句之后,布尔变量也设置为true
我正在为学校编写一个程序,读取SSA中的婴儿名字文件,并返回给定年份的名字数量统计数据 我在输出falseJava 即使在if-else语句之后,布尔变量也设置为true,java,if-statement,boolean,Java,If Statement,Boolean,我正在为学校编写一个程序,读取SSA中的婴儿名字文件,并返回给定年份的名字数量统计数据 我在输出falsefoundboolean时遇到问题,这将允许我打印未找到给定名称 import java.util.*; import java.io.*; public class BabyNames{ public static void main(String []args) throws FileNotFoundException { File file =
found
boolean时遇到问题,这将允许我打印未找到给定名称
import java.util.*;
import java.io.*;
public class BabyNames{
public static void main(String []args)
throws FileNotFoundException
{
File file = new File ("babynames.txt");
Scanner input = new Scanner(file);
Scanner console = new Scanner(System.in);
int amount = 0;
System.out.print("Name? ");
String s1 = console.next();
boolean found = true;
while (input.hasNextLine()) {
String line = input.nextLine();
Scanner lineScan = new Scanner(line);
String name = lineScan.next();
if(name.equals(s1)){
found = true;
for(int i = 1; i<= 11; i++) {
amount = lineScan.nextInt();
int k = amount / 20;
System.out.print((i * 10) + 1890 + ": ");
for(int r = 1; r <= k; r++) {
System.out.print("*");
}
System.out.println();
}
} else {
found = false;
}
}
if(found = false){ //it never turns back into false
System.out.println(s1 + " is not found.");
}
input.close();
}
}
import java.util.*;
导入java.io.*;
公共类BabyNames{
公共静态void main(字符串[]args)
抛出FileNotFoundException
{
File File=新文件(“babynames.txt”);
扫描仪输入=新扫描仪(文件);
扫描仪控制台=新扫描仪(System.in);
整数金额=0;
系统输出打印(“名称”);
字符串s1=console.next();
布尔值=真;
while(input.hasNextLine()){
String line=input.nextLine();
扫描仪行扫描=新扫描仪(行);
字符串名称=lineScan.next();
if(名称等于(s1)){
发现=真;
对于(int i=1;i请检查您最后的如果。您的意思可能是:
if(found == false){ //it never turns back into false
System.out.println(s1 + " is not found.");
}
但为了防止将来发生此类错误,您应该这样做:
if(!found){ //reads "if not found"
System.out.println(s1 + " is not found.");
}
如果
,请检查您的最后一个。您的意思可能是:
if(found == false){ //it never turns back into false
System.out.println(s1 + " is not found.");
}
但为了防止将来发生此类错误,您应该这样做:
if(!found){ //reads "if not found"
System.out.println(s1 + " is not found.");
}
if(found=false){
将false
赋值给found
,然后测试结果(结果总是false
)。相等运算符是=
,而不是=
=/code>总是赋值
但是对于布尔变量,您基本上不需要=
或!=
。只需测试变量本身:
if (!found) {
if(found=false){
将false
赋值给found
,然后测试结果(结果总是false
)。相等运算符是=
,而不是=
=/code>总是赋值
但是对于布尔变量,您基本上不需要=
或!=
。只需测试变量本身:
if (!found) {
这就是为什么你不应该把布尔值与真值或假值进行比较的原因。所以,考虑一下如果(找到)做了。这就是你永远不应该把布尔值和真值或假值进行比较的原因。。即使在这之后,逻辑仍然存在严重缺陷。对find的值的检查只检查最后一个输入行-它的值对于所有其他输入行都被忽略。熟悉IDE的调试器应该会有很大帮助。您会发现find
每次都变为false
)即使在那之后,逻辑仍然存在严重缺陷。对find的值的检查只检查最后一个输入行-它的值对于所有其他输入行都被忽略。熟悉IDE的调试器应该会有很大帮助。您会发现,find
每次都变为false
)