【发布时间】:2018-03-17 07:07:20
【问题描述】:
我在玩这个代码...
import java.util.Scanner;
class plus
{
public static void main(String[] args)
{
Scanner scan = new Scanner(System.in);
do{
System.out.print("Youe Value: ");
long tobe = scan.nextLong();
int total = 0;
String parsed = String.valueOf(tobe);
for(int i = 0; i < parsed.length(); i++) {
total += Character.getNumericValue(parsed.charAt(i));
}
System.out.println("Your Result: "+ total);
}
while(scan.hasNextLong());
}
}
输出应提示输入一个数字,然后对其进行处理并打印为结果。
如果是integer(long),则再次输入另一个输入
但是while循环scan.hasnextLong中的条件自己接受输入并处理它,输出是这样的-
您的价值:您的结果:n
但预期的输出是这样的-
你的价值:米
您的结果:n
就像第一次一样。 tobe 在第一次之后似乎没有接受输入。它只是使用循环条件中的给定来检查那是否是integer。在打印 Your Value: 之前更清楚程序提示,并在 tobe 中使用此值。
所以我想在 while 循环条件内打印
在这一行的某处,圆括号内的条件
while(scan.hasNextLong())
所以它会像我想要的那样打印和提示;
【问题讨论】:
标签: java loops while-loop conditional-statements