当前位置: 代码迷 >> Java相关 >> 哪位高手能给小弟我讲讲这是为什吗
  详细解决方案

哪位高手能给小弟我讲讲这是为什吗

热度:1622   发布时间:2013-02-25 21:49:51.0
谁能给我讲讲这是为什吗?
import java.util.Scanner;

public class BasicType {

/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
Scanner s=new Scanner(System.in);
System.out.println("请输入若干整数");
int sum=0;
String str;
while(s.hasNextInt())
sum+=s.nextInt();
System.out.println(sum);
s.close();
}

}
我回车后怎么结束不了输入啊!!!!!!
s.hasNextInt()何时返回true,何时又返回false!!!!!
我特别想知道:如何输入完数字后,回车,直接打印出sum的值并结束程序!!!!!!
困扰我好久好久!!!!!

------解决方案--------------------------------------------------------
经过测试,回车不会返回true or false.
在回车时应该线程还是暂停的。
应该使用一个确定的值来判断输入完毕,不能根据回车判断。
Scanner s=new Scanner(System.in);
System.out.println("请输入若干整数");
int sum=0;
while (s.hasNext()){
s.next();
System.out.println(sum++);
}
System.out.println(sum);
s.close();
------解决方案--------------------------------------------------------
Java code
import java.util.Scanner;public class A {/*** @param args*/      public static void main(String[] args) {// TODO Auto-generated method stub           Scanner s=new Scanner(System.in);           System.out.println("请输入若干整数");           int sum=0;           String str;           while(s.hasNextInt())  //输入非数字结束循环                sum+=s.nextInt();           System.out.println(sum);           s.close();      }}
------解决方案--------------------------------------------------------
hasNextInt() : 如果通过使用 nextInt() 方法,此扫描器输入信息中的下一个标记可以解释为指定基数中的一个 int 值,则返回 true。

------解决方案--------------------------------------------------------
探讨

能不能再详细点,线程为何还是暂停的?s.hasNext()什么时候返回true,什么时候返回false。

------解决方案--------------------------------------------------------
Java code
import java.util.Scanner;public class A {      public static void main(String[] args) {           Scanner s=new Scanner(System.in);           System.out.println("请输入若干整数:");           int sum=0;           String str;           while(s.hasNextInt()){  //输入非数字结束循环                sum+=s.nextInt();                 System.out.println("结果:"+sum);           }           s.close();           System.out.println("输入数为非整数字,程序结束!");      }}
  相关解决方案