我有一个循环,检查到目前为止最大的数字并添加一个;但是例如1 2 3 4 5我按下按钮6,如果列表是1 2 3 5 6怎么办,我想要打印4这样我可以得到一个正确的数字线然后继续增加一个?
编辑:我应该提一下,我的清单可能无法正常运行2 1 3 5
答案 0 :(得分:0)
你应该逐步检查数字是否正常:
所以说你有一个名为numbers []
的int数组 你可以这样做:int placehodler = numbers[0] + 1;
for (int i = 1; i < numbers.length(); i++){
if (placeholder != numbers[i]) // checks if the next number is equal to the previous + 1
break; // breaks out of the loop if it isn't
placeholder++; // increment placeholder by 1
}
System.out.println(placeholder); // prints placeholder
因此,如果占位符提前突破循环,那么它就是你的1,2,3,5,6情况,它将有4个(在占位符= 3的情况下成功循环,在占位符= 4时失败)在1,2,3,4,5情况下,它会在所有情况下成功并以6的值结束循环。
答案 1 :(得分:0)
首先,我会找到您当前列表的计数。如果您的列表是[1 2 3 5],则计数为4。
然后,我会创建一个新列表,其中包含从1到count =&gt;的数字范围。 [1 2 3 4] 比较两个列表将让您查看是否缺少任何数字,如果没有数字丢失,那么您可以将1添加到当前计数并将其附加到列表的末尾。
在执行任何此操作之前对列表进行排序将处理其他注释中提到的无序问题。