關于變量名沖突的問題,兩個i,一個定義在for循環里面,一個定義在for循環外面。懂的大神,進來幫忙指點一下。
第一段代碼:
public?static?void?main(String[]?args)?{
? ? ? ? ? int i=0;? ?//這里定義了i
?????????for(int?i=0;i<=10;i++)?{? ? //這里也有一個,系統提示,命名重復,請修改
???????? ?System.out.println(i);
? ? ? ? ?}
?????????}
第一段代碼有兩個i。一個在for外面,一個在for里面,系統提示命名沖突。
?第二段代碼:
public?static?void?main(String[]?args)?{
?????????for(int?i=0;i<=10;i++)?{
???????? ?System.out.println(i);
?????????}
?????????for(int?i=1;1<=10;i++)?{
? ? ? ??
???????? ?System.out.println("當前累加值為:"+sum);
???????? ?}
?????????}
第二段代碼有兩個并列的for循環,都有一個變量i,但是兩個不會命名沖突。
為什么第一段代碼 i名字會沖突,第二段代碼i名字不沖突?
2020-08-19
第二段兩個i是獨立的,只在他們的循環體生效....
2020-09-22
第二段的第一個循環i執行完循環會刪除i的變量所以不會影響第二個循環定義變量i
第一段的變量i不是循環體里定義的變量不會自動刪除
2020-08-19
那第一段代碼 i 名字會沖突的原因是什么?