java - 为什么这个数组循环?
问题描述
我不明白为什么代码在第一次迭代后不会结束。一旦i = 1,循环不应该结束吗?因为 array.length 为 3,除以 2 为 1,而 1<1 为假。该数组是用于检测回文的代码,因此当前代码读取为 false,{2, 5, 2} 读取为 true。谢谢您的帮助。
public class Scratch {
public static void main(String[] args) {
boolean b = true;
int[] a = {2, 5, 8};
for (int i = 0; i < a.length/2; ++i)
if (a[i] != a[a.length - i - 1]) {
b = false;
break;
}
System.out.println(b);
}
}
解决方案
它确实在第一次迭代后结束。
它返回false
是因为您将8
其作为数组中的最后一个值写入。如果将其更改为2
它返回的值true
在第一次迭代中,您面临的价值2
是8
main return false
。
推荐阅读
- algorithm - 受约束的最小不完全生成树?
- python - pyinstaller 在打包烧瓶 Web 应用程序时隐藏导入 tensorflow._api.v2.compat.v1.keras.experimental。无法从站点包中找到 Hook
- swift - 线程 1:每当我尝试发出网络请求时,EXC_BAD_ACCESS (code=EXC_I386_GPFLT)
- angular - 如何以角度跨浏览器维护本地存储值
- python - Matplotlib barh capstyle 'round' 不起作用?
- haskell - 如何在 Haskell 中使用骨架程序
- tcp - TCP 握手 - 第一次 SYN 没有响应
- python - 尝试运行 django 应用程序时出现此错误:django.db.utils.OperationalError: unsupported file format
- .net - 使用 VB.NET PrinterSettings 打印到特定托盘 (PaperSource) 时遇到问题
- sql-server - Informatica:工作流映射引用了错误的 odbc.ini 文件