java - 如何在 for 循环中有一个数组,它实际上会在每次运行时改变 for 循环的大小?
问题描述
我希望我的 for 循环的长度是一个不断变化的数字。我可以这样做吗?
我还没有真正尝试过任何东西
for (int i=0; i < colsAdd[i] ; i++){
System.out.print(" 0.0");
}
实际上,这colsAdd[0]
是唯一的尺寸。
解决方案
我不确定我是否完全理解您的要求,但您似乎想知道允许将什么放入 for 循环的不同部分,以及它们运行的顺序。
如果我们更改您在上面粘贴的代码以匹配下图,则规则将变得显而易见。
for (initialization; condition; updateCounter){
codeInsideLoop
}
任何代码都可以进入 for 循环的那些部分,甚至可以留空!例如,以下代码等效于 while(true) 循环。
for (;true;){
System.out.print("This will run forever!");
}
或者这个 for 循环在循环内递增。
for (int i=0; i < 10;){
System.out.print("This will print 10 times");
i++;
}
更符合您的问题,此代码在每次迭代时调用一个函数,以查看它是否应该继续循环。这个函数可以使用任何逻辑来返回一个布尔值。无论如何,它将在每个单循环结束时执行。
for (int i=0; keepLooping(i); i++){
System.out.print("This will print 10 times");
i++;
}
现在,仅仅因为你可以做这些事情并不意味着你应该!通常,您希望保持循环的结构简单,以便每个人都能理解您的目标是什么。
推荐阅读
- symfony - 将 symfony 4 控制台与 docker 一起使用时的注意事项
- mysql - 带有子查询的慢速 SQL 查询和 Order By
- javascript - javascript不同的html页面显示不同的日期选择器
- java - 每 1 秒从 spring 调度器发送 50 个请求
- android - ANDROID_SDK_ROOT 未定义
- python - 使用占位符创建时,张量的形状为 [None, None]
- java - 如何发出 HTTPS GET 请求,与其他方竞争并尝试最快?
- makefile - Erlang/Cowboy: erlang.mk:6741: 目标配方...失败
- java - 将嵌套的 JSON 数据转换为 HTML 表
- excel - 将多个工作表 Excel 上传到内部表中