当前位置: 首页 > news >正文

111 - exercise 5

public class Dummy {private static int a = 3;private static int b = 5;private static int c = 7;public static void main(String... arguments) {int a = 1, b = 2;System.out.println("" + a + (a - b) + c);}
}

这个Java程序中有两个a和b变量,一个是类变量(private static),一个是方法内部的局部变量。程序的运行逻辑如下:

变量解释:

•	类的静态变量:
•	a = 3
•	b = 5
•	c = 7
•	main方法内部:
•	局部变量:a = 1, b = 2

代码分析:

1.	在main方法内部,有局部变量a = 1和b = 2,它们会覆盖类中的静态变量a和b。
2.	System.out.println("" + a + (a - b) + c); 语句会按顺序执行:
•	a的值是1(局部变量)。
•	(a - b) 等于 1 - 2 = -1。
•	c 的值是 7(类的静态变量)。
3.	表达式的计算顺序:
•	由于+操作符在Java中是从左到右结合的,所以首先执行"" + a,这会将a的值 1 转换为字符串,得到 "1"。
•	然后执行 "1" + (a - b),即 "1" + -1,得到 "1-1"。
•	最后执行 "1-1" + c,即 "1-1" + 7,得到字符串 "1-17"。

注:
在 Java 中,+ 操作符有两种功能:

1.	数值相加:当两个操作数都是数字时,+ 会执行普通的加法运算。
2.	字符串拼接:当其中一个操作数是字符串时,+ 操作符会将另一个操作数转换为字符串,并进行字符串拼接。

public static int test(int a, int b, int c) {b = c;System.out.println("" + c + b + a);return a + b + c;
}public static void main(String... arguments) {int a = 5, b = 4, c = 3;a = test(c, b, a);System.out.println("" + a + b + c);
}
1.	main方法的初始变量:
•	a = 5
•	b = 4
•	c = 3
2.	调用test方法:

在main方法中,调用了test(c, b, a),此时参数传递如下:
• a = 3(c的值)
• b = 4(b的值)
• c = 5(a的值)
3. 进入test方法:
• 在test方法中,首先执行 b = c;,因此 b 的值被更新为 c 的值,即 b = 5。
• 然后执行 System.out.println(“” + c + b + a);,我们按顺序拼接输出:
• c = 5(没有改变)
• b = 5(已经在上一步更新为5)
• a = 3(传入的参数)
因此,打印结果为:553。
• 最后,test方法返回 a + b + c 的值,即 3 + 5 + 5 = 13,将其返回给main方法中的a。
4. 返回main方法:
• 返回值 13 赋给 main 方法中的 a,因此现在 a = 13。
• b 和 c 保持不变,分别是 b = 4 和 c = 3。
5. 第二次输出:
• 在main方法中,执行 System.out.println(“” + a + b + c);,这会输出:
• a = 13
• b = 4
• c = 3
因此,输出结果为:1343。

输出结果:

整个程序的输出将会是:

1.	调用test方法时输出:553
2.	在main方法中输出:1343
http://www.lryc.cn/news/462939.html

相关文章:

  • 第二十五:IP网络层的数据,IP数据报
  • 三菱FX3UPLC机械原点回归- DSZR/ZRN指令
  • 网络通信与并发编程(三)粘包现象解决方案、socketserver实现并发
  • 使用Uniapp开发微信小程序实现一个自定义的首页顶部轮播图效果?
  • 软硬连接及动静态库
  • vue3.0 + vite:中使用 sass
  • 搭建`mongodb`副本集-开启权限认证 mongo:7.0.5
  • 智能工厂的软件设计 由“原力“篇引发的思考: 回顾、展望和本位 之2 修订稿之2
  • 2025选题推荐|基于SpringBoot的幼儿园智能管理与监控系统的设计与实现
  • mqtt客户端订阅一直重复连接?
  • SegFormer: 一个基于Transformer的高效视觉图像分割算法
  • SoC芯片中Clock Gen和Reset Gen的时钟树综合
  • 学习资料:电子标签拣货技术
  • Git 提交规范参考
  • 【前端】Matter:物体的高级控制
  • ASP.NET Core 路由规则 MapControllerRoute、MapDefaultControllerRoute、MapController
  • linux命令之less用法
  • 试用cursor的简单的记录
  • 下载Edge/Chrome浏览器主题的背景图片
  • Python解力扣算法题4(基础)
  • 鸿蒙NEXT开发-网络管理(基于最新api12稳定版)
  • 【LeetCode每日一题】——1413.逐步求和得到正数的最小值
  • 音频分割:长语音音频 分割为 短语音音频 - python 实现
  • 【Echarts动态排序图,series使用背景色更新动画,背景底色不同步跟随柱子动画】大家有没有解决方案
  • FLINK SQL 元数据持久化扩展
  • MySQL【知识改变命运】04
  • AD9680(adc直采芯片)使用说明
  • 无人机之位置信息计算篇
  • 安卓cpu知识
  • 图书管理新纪元:Spring Boot进销存系统