亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定

求組求助,大神們戳進來看一下

5783019f00017d4605000552.jpg

578301a0000118c604560636.jpg

為什么把初始變量int從for語句里面拿出來定義在前面的話,就只能輸出一行;而把初始變量定義I在for循環的括號里面就能正確輸出三行。

這兩個前后順序到底有什么區別嗎?

正在回答

3 回答

我親自測試了一遍,發現如果int j定義在第一個for循環里面就不會有問題,如:

public?static?void?funtion1()
{
for?(int?i?=?0;?i?<=?4;?i++)?{
for?(int?j?=?0;?j?<=?4;?j++)?{
System.out.print(i?+?""?+?j?+?"?");
}
System.out.println();
}
}
public?static?void?funtion2()
{
int?i?=?0;
for?(;?i?<=?4;?i++)?{
int?j?=?0;
for?(;?j?<=?4;?j++)?{
System.out.print(i?+?""?+?j?+?"?");
}
System.out.println();
}
}
public?static?void?main(String[]?args)?{
System.out.println("funtion1");
Test1.funtion1();
System.out.println("=========================");
System.out.println("funtion2");
Test1.funtion2();
}

結果:

funtion1

00 01 02 03 04?

10 11 12 13 14?

20 21 22 23 24?

30 31 32 33 34?

40 41 42 43 44?

=========================

funtion2

00 01 02 03 04?

10 11 12 13 14?

20 21 22 23 24?

30 31 32 33 34?

40 41 42 43 44?

由上可得知,如果將int j 定義在外面,那么當第一層(i = 0)for循環后j的值就一直等于5,那么從第二層(i = 1)開始不會再進入j這一層循環,但如果放在里面則可以保證順利進入j這一層循環。

望采納!

0 回復 有任何疑惑可以回復我~
#1

weibo_Cc_Maiden月_03594558 提問者

好像模糊的懂了一丟丟,非常感謝
2016-07-11 回復 有任何疑惑可以回復我~

第一種情況 :變量j 是在for循環內定義的 ? 在每次進入第二個for循環 都將它初始化為 1?

第二種情況: 變量 j 是屬于main 方法的 ,在第二個for 循環結束之后 j的值為 9 ,跳到第一個for循環 將不再進入內循環了

1 回復 有任何疑惑可以回復我~
#1

weibo_Cc_Maiden月_03594558 提問者

好清晰明了,謝謝誒
2016-07-11 回復 有任何疑惑可以回復我~

應該是只打印了一行*,然后輸出了7個換行吧

0 回復 有任何疑惑可以回復我~
#1

weibo_Cc_Maiden月_03594558 提問者

為什么?
2016-07-11 回復 有任何疑惑可以回復我~

舉報

0/150
提交
取消
Java入門第一季(IDEA工具)升級版
  • 參與學習       1167491    人
  • 解答問題       18748    個

0基礎萌新入門第一課,從Java環境搭建、工具使用、基礎語法開始

進入課程

求組求助,大神們戳進來看一下

我要回答 關注問題
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號