- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我对编程和这个网站都很陌生,所以如果这个解释很笨拙,请耐心等待。
我正在自学 Java 编程,目前我只是编写一些通用的小代码来练习类和方法的使用。这是一个简单的代码,只需要输入姓名和年龄,以及是否有宠物即可练习。
当被问到这个人是否有宠物时,我有一个 if 循环,如果他们说是,它应该做一件事,而不是另一件事,对于其他任何事情,它应该或多或少地说“嘿,我不明白”那',然后继续。
但是,当我问“你有宠物吗”时,它甚至没有机会在直接进入循环的“其他”部分之前输入信息,我不确定为什么。
我对编程很陌生,所以我不知道该做什么或尝试什么。我知道我错过了一些愚蠢的东西,但我不知道是什么。
package practice;
import java.util.Scanner;
class Person {
String name;
int age;
void sayInfo() {
System.out.println("Hey, my name is " + name + " and I'm " + age + " years old!");
}
}
class Pet {
String name;
String type;
int age;
}
public class Methods {
public static void main(String args[]) {
Scanner input = new Scanner(System.in);
Person person1 = new Person();
String answer2;
do {
System.out.println("Please state your name:");
person1.name = input.nextLine();
System.out.println("Please state your age:");
person1.age = input.nextInt();
System.out.println("Do you have a pet?");
String answer = input.nextLine();
if (answer.equals("yes") || answer.equals("Yes")) {
Pet pet1 = new Pet();
System.out.println("What kind of pet?");
pet1.type = input.nextLine();
System.out.println("What is their name?");
pet1.name = input.nextLine();
System.out.println("How old are they?");
pet1.age = input.nextInt();
System.out.println(
"okay, so your name is " + person1.name + ", you're " + person1.age + "years old, and");
System.out.println(
"You have a " + pet1.type + " named " + pet1.name + " who is " + pet1.age + "years old.");
}
else if (answer.equals("no") || answer.equals("No")) {
System.out.println("okay, so your name is " + person1.name + ", you're " + person1.age
+ "years old, and you have no pet.");
}
else {
System.out.println("Sorry, I didn't understand your input there.");
}
System.out.println("Is your information correct?");
answer2 = input.nextLine();
} while (answer2.equals("no") || answer2.equals("No"));
System.out.println("Thank you for your information and time.");
}
}
当我运行该程序时,它会询问姓名和年龄,但是当它询问“你有宠物吗”时,它只是不允许我输入并直接转到该程序的其他部分循环,“抱歉,我不明白你的输入”,但程序的其余部分,询问信息是否正确,如果不正确则重新运行似乎工作正常,只是这一部分让我难住了。
最佳答案
这是因为 nextInt()
仅返回 int,但不会将扫描器前进到下一行,因此当您之后调用 nextLine()
时,它会返回数字后面的空字符串,但不返回问题的答案(是/否)。
试试这个:
System.out.println("Please state your name:");
person1.name = input.nextLine();
System.out.println("Please state your age:");
person1.age = input.nextInt();
input.nextLine(); // Advance to the next line
System.out.println("Do you have a pet?");
String answer = input.nextLine();
或者在读取行时使用input.next()
而不是.nextLine()
。
关于java - 对我的 if 循环没有运行感到有点困惑?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57194053/
我正在尝试学习Rust。我正在阅读一本书online,该书实现了unix程序cat。现在,我试图读取作为像cargo run file1.txt file2.txt这样的参数传递的文件的内容,但是程序
我在 GHC 8.0.1 中遇到了一个带有种类索引 (?) GADT 的奇怪情况,其中在类型与种类签名中引入 foralls 会产生不同的类型检查行为。 考虑以下数据类型: {-# LANGUAGE
我正在使用 Perl 5.10 开发应用程序,HTML::Mason和 Apache 2.2。这是我第一次在大型项目中使用 Perl 5.10。我每隔一段时间就会出现奇怪的行为。应用程序因一个非常奇怪
我正在尝试将文件上传到aws中的rust中,因为我使用的是 rusoto_s3 的s3 rust客户端,当这些部分从单个线程发送时,我设法使分段上传代码正常工作不是我想要的,我想上传大文件,并且希望能
我是一名优秀的程序员,十分优秀!