所以,这周我刚开始对Java感到不舒服,我发现了一些奇怪的东西。我会添加代码,然后引导您完成。
import java.util.Scanner;
public class kids
{
public static void main(String[] args)
{
System.out.println("How old are you, doll?");
Scanner scanner = new Scanner(System.in);
int age = scanner.nextInt();
System.out.println("Doggie lover or a cat person?");
String animal = scanner.nextLine();
if(age < 18 && animal.contains("dog")) // 1st comparison
{
System.out.println("Hello cutie, welcome");
}
else if(age < 18 && animal.contains("cat")) // 2nd comparison
{
System.out.println("Oh, hi"); // This statement gets skipped
}
else if(age < 18 && animal.contains("cat")); // 3rd comparison
{
System.out.println("Hiya, Doggie lover!");
}
}
}
我在这里附上了我的输出输出
因此,我给出了一个输入"dogcat">到字符串动物。很明显,或者至少对我来说,这三个比较应该返回TRUE,但我的输出却相反。似乎只有第一和第三比较返回TRUE,但如果第三比较由于包含字符串"0"而返回TRUE;猫;第二次比较也是如此。为什么Java在这里跳过了我的比较?
对于输入dogcat,它只执行第一个if条件。由于其他两个条件是按照else-if条件给出的,所以它们不会被执行。
由于第3个if条件后面有分号的拼写错误,所以会出现混淆。因此,拼写错误为第3rd if条件生成了一个空语句。
由于拼写错误,最后一组大括号中的语句不是3rd if条件的一部分。