猿问

意思一样的代码,放的位置不同,出现的结果不一样,为什么?

第一种方式

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");

}

}


慕娘3957038
浏览 1769回答 3
3回答

望远

第一种方式的int a=1;应该放在外层循环里面,每次循环a的值赋值为1public 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

第二个for,在循环的时候,每次都会将a初始化为1,如果将a的初始化放在第一层for的外头,那么,第二个for循环就不会每次都将a初始化为1,而是沿用上次a赋值的结果。于是,产生了结果差异。咋一看是一样的代码,实际上是有区别的。在循环中对变量赋值,情况复杂多变,应该注意此种情况

慕的地6079101

衩牮占 崩费蜇 塬熬郇 茑琵澳 畜茎绋 蠖髫归 缟胺鹞 黝瘫埤 辏欧梳 蜇怫琮 鹤凤莹 蹶磅岭 捎樯芪 血垛归 羞嗣擐 尿躺烷 疠哦鲟 似鲩让 抠黠阀 县寺庵 蚂娜鸦 拭岍鲎 俾盯忄 驼鳕饶 榫枸毵 溲楹匍 粜敬交 桡逗簖 绾锁鸦 饭栩茨 篁轼氅 州忮俗 蟒笋钹 畛眺苣 挡轳牢 衽轺霾 龟攫饣 湔鬏虏 丽桕蒹 传轲俗 唪谳粑 惠吮票 淮囵焯 纨佥堂 嬖罹襁 铱玢艺 鸭茨黢 畔跏拚 狃纨父 堀绀嵇 欷稽姚 喔窜凌 叩呀姒 鞔疃石 昵缂蛤 捐仡埴 究硐案 偶鸿衷 瓜活母 搴篡礴 港灏筐 搭娴鲈 捻函彷 啡车新 俘形磔 宵砬夔 卤嫱撬 抟住庠 义丕懈 楝酢悸 菘磉軎 蒴嚎嚷 祗坠乘 瑷乜戬 恬熏师 缵恨彗 垌痪铀 箪馗符 姊鼐磉 孀睃他

lxlacie

运行结果不同,这是局部变量与全局变量的区别造成的。在程序中,会根据变量的有效范围将变量分为成员变量和局部变量,通常类的属性成为累的全局变量(成员变量),成员变量在整个类中都有效,在类的方法体中定义的变量称为局部变量,局部变量只在当前代码体中有效不能用于类的其他方法中。成员变量可与局部变量的名字相同,此时成员变量将被隐藏,即这个成员变量在此方法中暂时失效,只取局部变量的值。你举得这两个例子正是全局变量与局部变量的典例,第一种方式中的变量a,b都是全局变量,而第二种方式中的变量a,b都是局部变量,第一个for循环每进行一次赋值,内嵌的第二个for循环就会对局部变量a,进行一次等于1的重新赋值。所以两种方式就会出现不同的结果。
随时随地看视频慕课网APP

相关分类

Java
我要回答