第一种方式public static void main(String[] args) { int a=1; int b=1; for(;b<=9;b++){ for(;a<=b;a++){ System.out.print(a+"*"+b+"="+(a*b)+'\t'); } System.out.println(); } }第二种方式:public static void main(String[] args) { for(int b=1;b<=9;b++){ for(int a=1;a<=b;a++){ System.out.print(a+"*"+b+"="+(a*b)+"\t"); } System.out.print("\n"); } }
3 回答
已采纳
望远
TA贡献1017条经验 获得超1032个赞
第一种方式的int a=1;应该放在外层循环里面,每次循环a的值赋值为1
public static void main(String[] args) { int b=1; for(;b<=9;b++){ int a=1; for(;a<=b;a++){ System.out.print(a+"*"+b+"="+(a*b)+'\t'); } System.out.println(); } }
smilefriend
TA贡献4条经验 获得超1个赞
第二个for,在循环的时候,每次都会将a初始化为1,如果将a的初始化放在第一层for的外头,那么,第二个for循环就不会每次都将a初始化为1,而是沿用上次a赋值的结果。于是,产生了结果差异。咋一看是一样的代码,实际上是有区别的。在循环中对变量赋值,情况复杂多变,应该注意此种情况
慕的地6079101
TA贡献3593条经验 获得超0个赞
衩牮占
崩费蜇
塬熬郇
茑琵澳
畜茎绋
蠖髫归
缟胺鹞
黝瘫埤
辏欧梳
蜇怫琮
鹤凤莹
蹶磅岭
捎樯芪
血垛归
羞嗣擐
尿躺烷
疠哦鲟
似鲩让
抠黠阀
县寺庵
蚂娜鸦
拭岍鲎
俾盯忄
驼鳕饶
榫枸毵
溲楹匍
粜敬交
桡逗簖
绾锁鸦
饭栩茨
篁轼氅
州忮俗
蟒笋钹
畛眺苣
挡轳牢
衽轺霾
龟攫饣
湔鬏虏
丽桕蒹
传轲俗
唪谳粑
惠吮票
淮囵焯
纨佥堂
嬖罹襁
铱玢艺
鸭茨黢
畔跏拚
狃纨父
堀绀嵇
欷稽姚
喔窜凌
叩呀姒
鞔疃石
昵缂蛤
捐仡埴
究硐案
偶鸿衷
瓜活母
搴篡礴
港灏筐
搭娴鲈
捻函彷
啡车新
俘形磔
宵砬夔
卤嫱撬
抟住庠
义丕懈
楝酢悸
菘磉軎
蒴嚎嚷
祗坠乘
瑷乜戬
恬熏师
缵恨彗
垌痪铀
箪馗符
姊鼐磉
孀睃他
lxlacie
TA贡献35条经验 获得超11个赞
运行结果不同,这是局部变量与全局变量的区别造成的。
在程序中,会根据变量的有效范围将变量分为成员变量和局部变量,通常类的属性成为累的全局变量(成员变量),成员变量在整个类中都有效,在类的方法体中定义的变量称为局部变量,局部变量只在当前代码体中有效不能用于类的其他方法中。成员变量可与局部变量的名字相同,此时成员变量将被隐藏,即这个成员变量在此方法中暂时失效,只取局部变量的值。
你举得这两个例子正是全局变量与局部变量的典例,第一种方式中的变量a,b都是全局变量,而第二种方式中的变量a,b都是局部变量,第一个for循环每进行一次赋值,内嵌的第二个for循环就会对局部变量a,进行一次等于1的重新赋值。所以两种方式就会出现不同的结果。
添加回答
举报
0/150
提交
取消