java - 当它从java中的内部“for”循环“中断”时它会“更新”吗?
问题描述
下面显示的代码旨在使用嵌套for
循环生成 36 范围内的 30 个不同数字。
这个例子表明,当它break
来自内部for
循环时,它将++i
在外部“for”循环中执行“update”(在这个例子中“update”是)。但是我的老师告诉我不会。
但是当我调试它时,它确实执行了“更新”。我对么?
public class array {
public static void main(String[] args) {
int a[] = new int[30];
for( int i=0;i<a.length;++i)
{
a[i] = (int)( Math.random()*36 ) +1;
for(int j=0;j<i;++j)
{
if(a[i]==a[j])
{
--i;
break;
}
}
}
for( int num: a) System.out.print( num+" " );
System.out.println();
}
}
解决方案
这break
打破了内部循环。for
外循环继续( )的更新部分++i
。如果你的老师告诉你它不会那样做++i
,他/她就错了。如果执行了内部更新(++j
),则不break
执行,但外部更新是。
为了清楚起见,我们在谈论同样的事情:
int a[] = new int[30];
for (int i = 0; i < a.length; ++i) {
// Outer update ----------^^^
a[i] = (int) (Math.random() * 36) + 1;
for (int j = 0; j < i; ++j) {
// Inner update ---^^^
if (a[i] == a[j]) {
--i;
break; // <==== This break
}
}
}
for (int num : a) {
System.out.print(num + " ");
}
System.out.println();
推荐阅读
- javascript - 如何从 acf.maps 字段获取数据?
- redirect - 针对 IIS 中的一个特定 url 重定向到 /en
- javascript - 如何使 div 可点击而不是将其放在 html 的搜索框中
- python-3.x - 如何缩短这些关于将一个文本文件的内容复制到另一个文本文件的代码?
- python - 使用 time.sleep 运行 2 个分开的代码,带有几个巧妙的循环
- java - ImageIO.read() 返回 null 但不是每次都返回
- java - 列“x.Id”与引用列“y.xId”的数据类型不同
- python - seaborn distplot y 轴密度值在几个 bin 上高于 1.0
- python - 如何进行训练测试拆分,以便 Python 中每个类都有足够的训练和测试数据?
- javascript - 导航到另一个页面后如何获取上一个 URL