在java中总是得到相同的答案
有人能解释一下为什么我运行下面的代码时得到的答案只有40吗在java中总是得到相同的答案,java,arrays,arraylist,collections,java.util.scanner,Java,Arrays,Arraylist,Collections,Java.util.scanner,有人能解释一下为什么我运行下面的代码时得到的答案只有40吗 import java.util.*; 公共课程 { 公共静态void main(字符串[]args){ 扫描仪变量=新扫描仪(System.in); 字符串n=var.nextLine(); int p=var.nextInt(); 字符串[]a=var.nextLine().split(“”); 列表=新的ArrayList(); 对于(int i=0;ip){ 系统输出打印(((y/p)*20)+(y%p)*20); } 否则{
import java.util.*;
公共课程
{
公共静态void main(字符串[]args){
扫描仪变量=新扫描仪(System.in);
字符串n=var.nextLine();
int p=var.nextInt();
字符串[]a=var.nextLine().split(“”);
列表=新的ArrayList();
对于(int i=0;ip){
系统输出打印(((y/p)*20)+(y%p)*20);
}
否则{
系统输出打印(“20”);
}
}
}
nextInt()无法读取换行符。因此,当您使用nextLine()时,它将读取新行字符。
欢迎来到堆栈溢出。现在还不清楚代码的用途是什么-您在问题中没有解释,也没有评论。您是否尝试过在调试器中单步执行代码,以便计算出它在哪一点上的行为与您期望的不同?请提供一个输入示例;)您提供的链接已断开。你试过什么?对于不同的输入,我得到了20和40。
nextLine()
在输入时不使用ENTER(换行符),因此允许String[]a=var.nextLine().split(“”)代码>来吸收它,因此永远不会被真正要求它的本意。放置var.nextLine()代码>直接在int p=var.nextInt()之后代码>看起来像这样int p=var.nextInt();变量nextLine()代码>。该链接将仅在手机中打开,而不会在PC上打开