我有一个课堂作业,用扫描器读取数据。
import java.util.Scanner;
public class Project23
{
public static void main(String[] args)
{
// Declarations and instantiations.
Scanner scan = new Scanner(System.in);
String any = "";
boolean more = false;
double purchase = 0.0;
// Ask if user would like to run program?
System.out.print("Do you have any purchases? Y/N?: ");
// Ready value into string.
any = scan.nextLine();
System.out.println();
// If any is equal to y or Y it will set the value of more to true
// this runs the while statement below.
more = any.toUpperCase().equals("Y");
// While more is still true continue to run the code within the brackets.
while (more)
{
System.out.print("Please input purchase amount: ");
purchase += scan.nextDouble();
System.out.println();
System.out.print("Do you have any more purchases Y/N?: ");
any = scan.nextLine();
System.out.println();
more = any.toUpperCase().equals("Y");
}
if (purchase >= 2500)
System.out.println("Purchase >= 2500");
else
System.out.println("Purchase < 2500");
}
}
底部的部分只是为了测试我是否所有的信号都正常运行。但是,我安装的while循环似乎不想继续运行多次。它将接受一个值,然后如果我说是,我有更多的值(y或y),它将退出并打印任何一个胸部
这对我来说似乎很好。。。
boolean more = true;
while (more) {
System.out.print("Do you have any more purchases Y/N?: ");
String any1 = scan.nextLine();
System.out.println();
if (any1.equalsIgnoreCase("y")) {
more = true;
} else {
more = false;
}
System.out.println(more);
}
这有点吓到我了,因为我肯定没什么区别
while(more==true)
不是必需的while(more)
说了同样的话。
if(any1.等于(“y”)|| any1。equals(“Y”)
不是必需的,如果(any1.equalsIgnoreCase(“Y”)
将执行相同的操作
通过在调试器下运行应用程序或添加一些诊断跟踪打印,您应该能够自己解决这个问题;e、 g.在适当的点上进行类似的操作。
System.out.println("any is ==>'" + any + "'<==");
(我打赌这将表明任何
都不包含您期望的内容…)
我强烈建议您学会调试自己的代码,而不是请求其他人帮助。这是专业软件工程师的关键技能。
基本上发生的事情是,当你读双scan.next双(),你只读双,但是会有ENDLINE字符,当你打回车键的流,不被scan.next双()读取。因此,当您到达any1=scan.nextLine()时,它读取不等于Y或y的尾行字符。作为一个结果,它退出了虽然循环。纠正你的代码像这样,只是使更改一行,你正在阅读doubel:
while(more){
System.out.print("Please input purchase amount: ");
purchase+=Double.parseDouble(scan.nextLine());
System.out.println();
System.out.print("Do you have any more purchases Y/N?: ");
// scan.nextLine();
String any1=scan.nextLine();
System.out.println();
more = any1.equals("y") || any1.equals("Y");//Shortened :)
}
问题内容: 我有一个班级任务要使用扫描仪读取数据。 最下面的部分是对我的测试,以检查是否一切正常。但是,虽然我已设置了while循环,但似乎不想继续运行一次以上。它会取一个值,然后如果我说是,我有更多的值(y或Y),它将退出并打印两个笨蛋 问题答案: scan.nextLine()时,它将读取不等于Y或y的结束符。结果,它退出了while循环。像这样更正您的代码,只需更改您正在阅读doubel的一
我努力解决问题,我真的很接近,但我很困惑为什么我的程序似乎跳过,没有读取输入学生姓名部分我的输入。当学生数为1时,似乎也有这个问题。任何帮助都将不胜感激!:]
我需要一种允许用户输入团队名称和团队成员名称的方法。我试过使用扫描仪,但由于我对Java的经验不足,它无法正常工作。我只想让一个用户输入一个团队名称和四个团队成员的名字。我将这些变量公之于众,但我不知道如何向它们输入数据,因为它们在单独的类中。 这是密码 main类导入java.util.Scanner;公共类Main{
null 有没有一种方法可以根据列表中的项目为用户输入设置自动建议?我只希望用户输入一个与列表中的一个项目匹配的字符串。例如,如果某人键入'gre','green'就会弹出,他们会知道根据他们键入的内容,唯一的选项是'green',而不是'greens'。 谢啦! 编辑:只是为了澄清:我所需要的是程序显示哪些选项是可用后,用户在每个字母键入。因此,如果他们键入'g',它将只显示'green'作为剩
编辑问题以包括所需的行为、特定的问题或错误,以及重现问题所需的最短代码。这将帮助其他人回答这个问题。 我正在做一个待办事项列表程序。 我想让用户可以输入日期、时间和关于。我已经有日期了。我缺少的是时间。 但我有很多例外。我有什么遗漏吗?
我制作了一个程序来获取用户输入并将其传递出去,但出于某种原因,scanner类和下一行甚至不等待用户获取输入,而是跳过了整个获取输入部分。下面是我的代码: 基本上,程序就结束了,我没有输入任何输入,我找不到一个解决方案或解释这一点。