作者Egriawei (断背山狼与羊)
站内java
标题Re: [问题] 回圈
时间Thu Jun 1 23:03:31 2006
※ 引述《bizza (绝不放弃)》之铭言:
: int i,j,m;
: for(i=1;i<6;i++) {
: for(j=1;j<6;j++) {
: for(m=1;m<=i;m++) {
: System.out.print("*");
: }
: System.out.println("");
: break;
: }
: }
: 上面执行结果是
: *
: **
: ***
: ****
: *****
恕删
: 是那个break的关系吗?
是的
其实只要把自己当成电脑跑一次就知道了
首先i=1
进入j-for回圈时
先是j=1,然後因为i=1所以m-回圈中先做1次(m<=i)
但是接下来的break
因为"没有任何if之类的限制"就将它放在j-for回圈内
所以只要跑进j-for回圈就一定会执行到
自动跳出你的j-for回圈
後面j=2,3,4...根本不会执行
可以说j回圈和break根本就是多余了,去掉执行结果依然不变(要同时去掉)
接下来i=2以後的情形也是如此(一直到i=5为止,i=6时跳出i-for回圈)
所以依序在5行印出1~5个*
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 61.230.40.35
※ 编辑: Egriawei 来自: 61.230.40.35 (06/01 23:05)