码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • 大数据必学Java基础(十六):赋值运算符


    文章目录

    赋值运算符

    一、=的作用

    二、练习

    三、面试题

    1、利用第三个变量交换数值,简单的方法

    2、可以用两个数求和然后相减的方式进行数据交换,弊端在于如果 x 和 y 的数值过大的话,超出 int 的值会损失精度

    3、利用位运算的方式进行数据的交换,利用的思想原理是:一个数异或同一个数两次,结果还是那个数,而且不会超出int范围 

    4、最为简单的,在打印输出的时候直接交换变量 

    四、扩展赋值运算符 

    1、代码

    2、a+=b  和  a=a+b  区别

    3、面试题


    赋值运算符

    一、=的作用

    将等号右侧的值赋给等号左侧

    1. int age = 19;
    2. int age = 10+3+8;

    二、练习

    1. public class TestOpe06{
    2. public static void main(String[] args){
    3. //任意给出两个数,交换两个数并输出:
    4. //1.给出两个数:
    5. int num1 = 10;
    6. int num2 = 20;
    7. //2.输出交换前的两个数:
    8. System.out.println("交换前:"+num1+"\t"+num2);
    9. //3.交换
    10. /*
    11. 错误代码:
    12. num1 = num2;
    13. num2 = num1;
    14. */
    15. //解决办法:
    16. //引入一个中间变量:
    17. int t;
    18. t = num1;
    19. num1 = num2;
    20. num2 = t;
    21. /*
    22. int t;
    23. t = num2;
    24. num2 = num1;
    25. num1 = t;
    26. */
    27. //4.输出交换后的两个数:
    28. System.out.println("交换后:"+num1+"\t"+num2);
    29. }
    30. }

    分析

     

    三、面试题

    两个数交换的四种方式:

    对于两种变量的交换,发现四种方法,下面用Java来演示一下

    1、利用第三个变量交换数值,简单的方法

    1. class TestEV
    2. //创建一个类
    3. {
    4. public static void main(String[]args)
    5. {
    6. int x =5,y=10; //定义两个变量
    7. int temp = x;    //定义第三临时变量temp并提取x值
    8. x = y;        //把y的值赋给x
    9. y = temp;      //然后把临时变量temp值赋给y
    10. System.out.println("x="+x+"y="+y);
    11. }
    12. }

    2、可以用两个数求和然后相减的方式进行数据交换,弊端在于如果 x 和 y 的数值过大的话,超出 int 的值会损失精度

    1. class TestEV
    2. //创建一个类
    3. {
    4. public static void main(String[]args)
    5. {
    6. int x =5,y=10; //定义两个变量
    7. x = x + y; //x(15) = 5 + 10;
    8. y = x - y; //y(5) = x(15) - 10;
    9. x = x - y; //x(10) = x(15) - y(5)
    10. System.out.println("x="+x+"y="+y);
    11. }
    12. }

    3、利用位运算的方式进行数据的交换,利用的思想原理是:一个数异或同一个数两次,结果还是那个数,而且不会超出int范围 

    1. class TestEV
    2. //创建一个类
    3. {
    4. public static void main(String[]args)
    5. {
    6. int x =5,y=10; //定义两个变量
    7. x = x^y;
    8. y = x^y; //y=(x^y)^y
    9. x = x^y; //x=(x^y)^x
    10. System.out.println("x="+x+"y="+y);
    11. }
    12. }

    4、最为简单的,在打印输出的时候直接交换变量 

    1. class TestEV
    2. //创建一个类
    3. {
    4. public static void main(String[]args)
    5. {
    6. int x =5,y=10; //定义两个变量
    7. System.out.println("x="+y+"y="+x); //直接在输出的时候交换
    8. }
    9. }

    四、扩展赋值运算符 

    1、代码

    1. public class TestOpe07{
    2. public static void main(String[] args){
    3. //实现功能:给出三个数,求和:
    4. //1.给出三个数:
    5. int num1 = 10;
    6. int num2 = 20;
    7. int num3 = 30;
    8. //2.求和
    9. //int sum = num1+num2+num3;
    10. //定义一个变量,用来接收和:
    11. int sum = 0;
    12. sum = sum + num1;//等效: sum += num1;
    13. sum = sum + num2;// sum += num2;
    14. sum = sum + num3;//sum += num3;
    15. //3.将和输出:
    16. System.out.println("和:"+sum);
    17. }
    18. }

    内存

    2、a+=b  和  a=a+b  区别

    (1)a+=b    可读性稍差 编译效率高   底层自动进行类型转换

    (2)a=a+b     可读性好  编译效率低   手动进行类型转换

    3、面试题

    (1)请问a+=b相当于a=a+b,那么也相当于  a=b+a吗?

     

    (2)下面的代码哪一句出错 

    byte a = 10;  --->1

    int b = 20;  --->2

    a+=b;  ---->3

    a = a+b ;---->4

    第四行代码报错

    更正:  a = (byte)(a+b);


    • 📢博客主页:https://lansonli.blog.csdn.net
    • 📢欢迎点赞 👍 收藏 ⭐留言 📝 如有错误敬请指正!
    • 📢本文由 Lansonli 原创,首发于 CSDN博客🙉
    • 📢停下休息的时候不要忘了别人还在奔跑,希望大家抓紧时间学习,全力奔赴更美好的生活✨ 
  • 相关阅读:
    IMAU鸿蒙北向开发-2023年9月6日学习日志
    stm32和电机开发(直流有刷电机和步进电机)
    高效协同: 打造分布式系统的三种模式
    Shiro学习与笔记
    java并发数据结构之CopyOnWriteArrayList
    glog从下载到使用实录
    C专家编程 第11章 你懂得C,所以C++不再话下 11.18 如果我的目标是那里,我不会从这里起步
    【计算机网络笔记】DNS报文格式
    腐烂橘子图问题
    WPF RelativeSource属性-目标对象类型易错
  • 原文地址:https://blog.csdn.net/xiaoweite1/article/details/125563711
  • 最新文章
  • 攻防演习之三天拿下官网站群
    数据安全治理学习——前期安全规划和安全管理体系建设
    企业安全 | 企业内一次钓鱼演练准备过程
    内网渗透测试 | Kerberos协议及其部分攻击手法
    0day的产生 | 不懂代码的"代码审计"
    安装scrcpy-client模块av模块异常,环境问题解决方案
    leetcode hot100【LeetCode 279. 完全平方数】java实现
    OpenWrt下安装Mosquitto
    AnatoMask论文汇总
    【AI日记】24.11.01 LangChain、openai api和github copilot
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1
正则表达式工具 cron表达式工具 密码生成工具

京公网安备 11010502049817号