java - 循环卡在无限循环中
问题描述
为什么这段代码没有结束。我已经给出了所需的字符串输入和k输入,但我不知道为什么它没有结束。请提供一些见解。
import java.util.*;
public class Main
{
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
String s = sc.nextLine();
int k = sc.nextInt();
ArrayList<Character> l = new ArrayList<>();
for(int i=0; i<s.length(); i++){
l.add(s.charAt(i));
}
int count = 0;
int first = 0;
int last = s.length() - 1;
while(first < last){
if(l.get(first) + l.get(first + 1) == k || l.get(first) == k){
count++;
}
}
if(count % 2 == 0){
System.out.println("B");
}
System.out.println("A");
}
}
解决方案
你的输入现在很好。这个问题在整个迭代过程中始终保持不变first
。last
添加first++;
您的 while 循环,以便在每次迭代时first
增加值。
while(first < last){
if(l.get(first) + l.get(first + 1) == k || l.get(first) == k){
count++;
}
first++;
}
推荐阅读
- java - 不建议在没有服务器身份验证的情况下建立 SSL 连接
- jestjs - Jest 测试在 create-react-native-app 项目中的第一个导入语句(意外标识符)失败
- mysql - 自动递增外键?
- javascript - 将 PHP 内部的 POST 请求发送到外部 API
- python - 将表数据移动并复制到另一个表数据
- javascript - jQuery:如何让克隆的 div 始终出现在容器的底部?
- javascript - 将摩根日志存储到数据库中
- django - 从表单或输入提交按钮 Django 调用两个不同的 url
- javascript - 如何在按钮悬停时打开文件上传对话框?
- c++ - 如何从文件中读取数据并将数据存储到结构中并计算公式?