请问这个java程序为什么不往下执行了,很简单共5行

Scanner cin = new Scanner(System.in);
int num = 0;
num = cin.nextInt();
if(num == 1){
String str = cin.nextLine();
}
这只是我做的一个测试的程序,执行以后输入1,程序就结束了,没法执行下面的String str=cin.nextLine()请问这是为什么啊?

第1个回答  2012-11-06
你确定没执行吗?你设置断点看一下,应该是执行了
执行num = cin.nextInt(); 这时你需要在终端输入一个数字,然后回车换行。。

当String str = cin.nextLine();时,cin读入的就是刚刚那个回车换行,显示是空的
你可以System.out.println(str);看一下,应该就换了一行追问

好像不执行啊。。输完1就跳出来了,加上println好像也不行

追答

我试了下确实执行的,是有效果的,println会看到多出一行
或者这样,你把String str = cin.nextLine();改成int str = cin.nextInt();
这样就会停下来,必须再输入数字,你再print就看到了

如果你一定要字符串的话,就在加一行吧,要求输入两遍:
String str = cin.nextLine();
str = cin.nextLine();
System.out.println(str);

本回答被网友采纳
第2个回答  2012-11-06
nextLine()方法的结束符只是Enter键,即nextLine()方法返回的是Enter键之前的所有字符,它是可以得到带空格的字符串的。追问

什么意思?我有点不明白,那么这个程序应该怎么改才能继续输入str呢?

追答

你改成String str = cin.next()就可以继续了啊

本回答被提问者采纳
相似回答