day04_运算符

Posted 沐沐霸

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了day04_运算符相关的知识,希望对你有一定的参考价值。

今日内容

零、 复习昨日
一、运算符
二、流程控制语句(1)

零、 复习昨日

见晨考

一、作业

4 用合适的变量名,以及数据类型声明以下数据
	姓名,年龄,性别,身高,体重,余额,家庭住址
	并将结果输出
6 完成打印输出Java所有基本数据类型及所占字节数,格式如效果图。
	类型 所占字节 取值范围 占多少位
	byte 1字节 -2^7~2^7-1 8位
	short 2字节 -2^15~2^15-1 16位
	int 4字节 -2^31~2^31-1 32位
	...	
7 定义两个变量
 int a = 10 
 int b = 20 ,
 交换两个变量的值
 sout(a);// 20
 sout(b);// 10
package com.qf.homework;

/**
 * --- 天道酬勤 ---
 *
 * @author QiuShiju
 * @desc
 */
public class Demo1 

    public static void main(String[] args) 
        /**
         * 4 用合适的变量名,以及数据类型声明一下数据
         * 	姓名,年龄,性别,身高,体重,余额,家庭住址
         * 	并将结果输出
         */
        String name = "蛮族之王";
        int age = 35;
        char sex = '男';
        // 高
        double height = 160.0;
        // 重量
        double weight = 80.0;
        double money = 450.0;
        // address 地址
        String address = "弗雷尔卓德";


        System.out.println(name );
        System.out.println(age );
        System.out.println(sex );
        System.out.println(height );
        System.out.println(weight );
        System.out.println(money );
        System.out.println(address );


        System.out.println("------- 组词咋造句 --------" );

        // 后续自己补全
        System.out.println("我叫"+name+",今年"+age+"岁" );

        // 先写完整的句子,选中替换的值,引号引号,加号加号,中间变量
        System.out.println("我叫"+name+",今年"+age+"岁" );

        System.out.println("-----------------------" );

        // 输出结果
        // \\t 制表符
        System.out.println("类型\\t所占字节\\t取值范围\\t占多少位\\t" );
        System.out.println("byte\\t1字节\\t-2^7~2^7-1\\t8位\\t" );
        System.out.println("short\\t2字节\\t-2^15~2^15-1\\t16位\\t" );
        System.out.println("int\\t4字节\\t-2^31~2^31-1\\t32位\\t" );


        System.out.println("----------------------" );

        // 交换位置
        int a = 100;
        int b = 200;
        System.out.println("交换前: a = " + a );
        System.out.println("交换前: b = " + b );

        // 声明第三个变量,用于临时的接收其中一个变量
        int c = a;
        a = b;
        b = c;
        System.out.println("交换后: a = " + a );
        System.out.println("交换后: b = " + b );
    

一、运算符

运算:

  • 赋值
  • 算术
  • 关系
  • 逻辑
  • 三目

1.1 赋值运算

  • =
    • int a = 1; 将数值1赋值给变量a
    • String name = “zs”; 将字符串zs赋值给变量name
  • +=,-=,*=,/=
    • 简化写法
    • 默认进行类型转换,防止出现 = 等号两边类型不匹配的情况
package com.qf.operation;
/**
 * --- 天道酬勤 ---
 *
 * @author QiuShiju
 * @desc 赋值运算符
 */
public class Demo1 

    public static void main(String[] args) 
        int a = 1;
        a += 2;// a = a + 2;
        System.out.println(a );

        double d = 3.0;
        d += 2; // d = d + 2;
        System.out.println(d );

        int i = 1;
        //i += 1;
        i = i + 1;
        System.out.println(i );

        short s = 1;
        // s += 1;  // += 可以默认进行类型转换
        s = (short)(s + 1);
        System.out.println(s );
    

1.2 算术运算

+ - * / %
++ , --
  • 数字相加,字符串拼接
  • - 相减
  • * 相乘
  • / 相除,整数相除除不尽,取整舍弃小数
  • % 取余/取模,除不尽的余数, 判断奇偶性
  • ++ , – 自增自减1
  • ps: 操作符两边数据类型不一致,结果为向大的一方转换
package com.qf.operation;

/**
 * --- 天道酬勤 ---
 *
 * @author QiuShiju
 * @desc 演示算术运算
 */
public class Demo2 

    public static void main(String[] args) 
        System.out.println("----------- 加法 ---------" );
        /**
         * + 加法
         * 1) 数字相加,如果符号两边的数据类型不一致,
         *    运算结果会向大的一方转换
         * 2) 字符串拼接
         */
        int a = 1;
        int b = 2;
        double d = 3.0;
        // int c = a + b;
        // System.out.println(c );
        System.out.println(a + b );
        System.out.println(a + d );// double d2 = a + d;

        short s = 1;
        int i = 1;
        // short+int,结果是int
        int s2 = s + i;

        // 加法实现字符串拼接
        int a3 = 1;
        String s3 = "1";
        System.out.println(a3 + s3 );

        System.out.println(1 + 1 + "1" + 1 );
        System.out.println(1 + 1 + "1" + 1 + 1);
        System.out.println(1 + 1 + "1" + 1 + 1);
        System.out.println("21" + 1 );
        System.out.println("211" + 1 );
        // 总结: 字符串前一个是拼接,字符串后全是拼接
        System.out.println("----------- 减法 ---------" );

        /**
         * - 减法
         * 只能做数字相减
         */
        int a4 = 1;
        int a5 = 1;
        System.out.println(a4 - a5 );
        double d5 = 1.0;
        System.out.println(a5 - d5 );

        /**
         * * 乘法
         * 只能做数字相乘
         */
        System.out.println(2 * 3 );// 6
        System.out.println(2.0 * 3 );// 6.0
        System.out.println("----------- 除法 ---------" );

        /**
         * / 除法
         * 1) 做数字相除,
         *   如果整数相除,除不尽舍弃小数,直接取整
         *   如果想保留小数,就只能将其中一个数变为浮点型即可
         */
        System.out.println(10 / 2 );
        System.out.println(10 / 3 );
        System.out.println(10 / 4 );
        System.out.println(10.0 / 4 );
        System.out.println(10.0 / 3 );
        System.out.println("----------- 取余/取模 ---------" );
        /**
         *  % 取余或者取模
         *   除不尽的余数
         * 取余有个非常常见的场景: 用来判断奇偶性
         */
        System.out.println(10 % 3 );// 余1
        System.out.println(10 % 4 );// 余2

        // 任何一个整数除以2的余数如果是0,该数是偶数
        System.out.println(10 % 2 );
        System.out.println(9 % 2 );
        System.out.println("----------- 自增/自减 ---------" );
        /**
         * ++ 自增1
         * -- 自减1
         * 用法:
         *  i++
         *  ++i
         */
        int in = 1;
        in++;  // 本身自增1
        System.out.println(in );

        in--; // 本身自减1
        System.out.println(in );

        int ix = 1;
        ++ix;  // 本身自增1
        System.out.println(ix );

        --ix; // 本身自减1
        System.out.println(ix );

        int iy = 1;
        // int iz = iy++; // ++在后,先用后增,iz=1,iy=2
        int iz = ++iy;    // ++在前,先增后用,iz=2,iy=2
        // 无论先+后+,本身一定会自增1
        System.out.println("iz = "+ iz );
        System.out.println("iy = "+ iy );

        int aa = 10;
        int bb = 10;
        int cc = 10;
        aa = bb++;// a=10,b=11
        cc = --aa;// a=9,c=9
        bb = ++aa;// a=10,b=10
        aa = cc--;// a = 9,c=8
        System.out.println("aa = "+aa);
        System.out.println("bb = "+bb);
        System.out.println("cc = "+cc);

        int x = 4;
        int y = (x++) + (++x) + (x*10);
        System.out.println("x = "+x);// 6
        System.out.println("y = "+y);// 70
    

1.3 练习

使用[运算符]进行编程
定义变量 double salary,给其赋值,后
1、计算输出实领工资 
其中物价津贴为基本工资的4%
	房租津贴为基本工资的2.5%
	社保为基本工资1.25%
	话费补贴为100
2、输出一张完整的工资条
package com.qf.operation;

/**
 * --- 天道酬勤 ---
 *
 * @author QiuShiju
 * @desc
 */
public class Demo3 
    /**
     * 如何写题?
     * 1 读题
     * 2 千万不要,等全部想通再下手
     * 3 应该是能写多少写多少
     * 4 写不下去的时候,重点!!!!!
     *   越是写不下去,这时需要 记录 你此时的思路
     *   越详细越好,等我来给你解决
     * 5 解决完后,再写
     *----------------------------------
     * 如果发现写错,也需要梳理思路,对照正确思路
     *   我声明变量a = 1,
     */
    public static void main(String[] args) 
        double salary = 10000;// 基本工资
        double wjjt = salary * 0.04;// 物价津贴
        double fzjt = salary * 0.025;// 房租津贴
        double sb = salary * 0.0125;// 社保
        int bt = 100;// 话费补贴

        salary = salary + wjjt + fzjt - sb + bt;

        System.out.println("实领工资: " + salary );

        // 输出工资条
    

1.4 关系运算符

数据之间的关系, 大小小于相等这些关系

>  大于
>=  大于等于
<  小于
<= 小于等于
==  相等
!=  不等

关系运算的结果是: true和false,即boolean类型

package com.qf.operation;

/**
 * --- 天道酬勤 ---
 *
 * @author QiuShiju
 * @desc 演示关系运算
 */
public class Demo4 

    // 结果单词 result
    public static void main(String[] args) 
        /**
         * > >= <= == !=
         * 结果都是布尔型
         */
        int a = 1;
        int b = 2;
        boolean r1 = a > b;
        System.out.println(r1 );

        System.out.println(a > b );// F
        System.out.println(a < b );// T
        System.out.println(a <= b );// T
        System.out.println(a >= b );// F
        // 以上几个符号(> >= < <=)两边都是数字

        // 判断两个值是否相等,使用==
        System.out.println(a == b );// F
        // 判断两个值是否不相等,使用!=
        System.out.println(a != b );// T

        // 以上2个符号(== , != )这两边可以是数字,也可以是字符串
        String name1 = "张三";
        String name2 = "张小三";

        System.out.println(name1 == name2 );// F
        System.out.println(name1 != name2 );// T

        // 总结: 将来这些关系运算都是要配合if,elseif,以及循环等使用


        // 练习: 定义两个变量x和y,判断x是否大于y
        int x = 1;
        int y = 10;
        boolean r2 = x > y;
        System.out.println("x是否大于y: " + r2 );

        // 练习: 判断定义的这个整数是否是偶数
        int num = 9;
        boolean r3 = num % 2 == 0;
        System.out.println("num 是否是偶数 "+ r3 );

        /**
         *  boolean r3 = num % 2 == 0;
         *  运算符有优先级: 算术 > 关系 > 赋值
         *  以上式子运算是:
         *  1) 先计算num % 2,得到结果余数1
         *  2) 再判断 1 == 0,得到结果false
         *  3) 最后将结果赋值给r3
         */
    

1.5 逻辑运算符

  • 与 &

  • 或 |

  • 非 !

  • 短路与 &&

  • 短路或 ||


写法:

​ 布尔表达式1 & 布尔表达式2

 布尔表达式1 && 布尔表达式2

 布尔表达式1 | 布尔表达式2

 布尔表达式1  | | 布尔表达式2
  • 布尔表达式是指,结果是布尔值的式子

  • 运算结果: 是布尔值,即true.false

  • 完整式子

    boolean 变量 = 布尔表达式1 & 布尔表达式2 ;

package com.qf.operation;

/**
 * --- 天道酬勤 ---
 *
 * @author QiuShiju
 * @desc 演示 逻辑运算
 */
public class Demo5 

    public static void main(String[] args) 
        /**
         * &   |  !
         * 与 或  非
         * --------------
         * 语法:
         *  boolean r1 = 布尔表达式1 & 布尔表达式2;
         * 执行流程:
         *  先执行表达式1,再执行表达式2
         *  然后两个表达式结果都是true,那么整体结果是就是true
         *  只要有一个是false,那么整体结果就是false
         * 全对才对,一错就错 (领结婚证)
         */
        int a = 1;
        int b = 2;
        boolean r1 = a > b & a < b;
        System.out.println(r1 );
        System.out.println("------------" );
        System.out.println(1 > 0 & 1 > 0 );// T & T = T
        System.out.println(1 > 0 & 1 < 0 );// T & F = F
        System.out.println(1 < 0 & 1 > 0 );// F & T = F
        System.out.println(1 < 0 & 1 < 0 );// F & F = F

        System.out.println("----------" );
        /**
         * boolean r2 = 布尔表达式1 | 布尔表达式2;
         * 一对就对,全错才错
         */
        System.out.println(1 > 0 | 1 > 0 );// T | T = T
        System.out.println(1 > 0 | 1 < 0 );// T | F = T
        System.out.println(1 < 0 | 1 > 0 );// F | T = T
        System.out.println(1 < 0 | 1 < 0 );// F | F = F

        System.out.println("----------------" );
        /**
         * 短路与(逻辑与) &&
         * 短路或(逻辑或) ||
         *   何为短路? 短路就是不执行
         *   当前面的表达式能决定整体结果时,后面的表达式短路不执行
         */
        System.out.println(1 > 0 & 1 > 0 );// T & T = T
        System.out.println(1 < 0 && 1/0 == 0 );// F & T = F
        System.out.println(1 > 0 || 1/0 == 0 );// F & T = F

        System.out.pr

day04_05 逻辑运算符表达式

num += 1 等价于 num = num + 1

逻辑运算符

and   全true则true

条件1 and 条件2

5>3 and 3>2   ===> true

5>3 and 3<2   ===>false

 

or  有true则true

5>3 or 6<2   ===>true

 

not 取反

not 5>3 ===>false

not 5<3 ===>true

 

a>b and c>d or not f

判断优先级:最好加括号

not > and > or

 

以上是关于day04_运算符的主要内容,如果未能解决你的问题,请参考以下文章

day04_运算符

Day03_JAVA语言基础第三天

Day04_JAVA语言基础第四天

java_day21_反射和注解

Day01_JAVA语言基础第一天

day04_java基础