栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

Java入门 第四节 运算符

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Java入门 第四节 运算符

1 运算符 1.1 概述

 运算符是一些特殊的符号,主要用于数学函数,一些类型的赋值语句和逻辑比较方面。Java中提供了丰富的运算符,如,赋值运算符、算术运算符、比较运算符、逻辑运算符 、三元运算符等。

1.2 赋值运算符
操作符描述例子
=将右侧表达式的值赋给左侧表达式C = A + B;将把A + B得到的值赋给C
+ =它把左操作数和右操作数相加赋值给左操作数C + = A 等价于 C = C + A
- =它把左操作数和右操作数相减赋值给左操作数C - = A 等价于 C = C - A
* =它把左操作数和右操作数相乘赋值给左操作数C * = A 等价于 C = C * A
/ =它把左操作数和右操作数相除赋值给左操作数C / = A,C 与 A 同类型时等价于 C = C / A
package com.operator.demo;
public class Operator01 {
    public static void main(String[] args) {
        //声明int的类型的变量 a b c 并初始化赋值
        int a = 10;
        int b = 20;
        int c=0;  // 赋值为0为了方便演示。

        c = a+b;
        System.out.println("c=a+b   "+c);

        c+=a; // c=c+a
        System.out.println("c+=a    "+c);

        c-=a; // c=c-a   思考? 为什么结果是30 不是20?
        System.out.println("c-=a    "+c);

        c*=a;//c=c*a
        System.out.println("c*=a    "+c);

        c/=a;// c= c÷a
        System.out.println("c/=a    "+c);
    }
}

输出结果:

c=a+b   30
c+=a    40
c-=a    30
c*=a    300
c/=a    30

说明:

代码的执行顺序是 由上向下的,所以上述变量int c 会一直在改变直到结束。在java中也可以把赋值运算符连在一起写 x=y=z=5; 但是不建议这样的写法。 1.3 算术运算符

 在Java中算术运算符的作用和数学中几乎一致,假设下列 A 为 10 B 为 20。

操作符描述例子
+相加运算符两侧的值A + B 等于 30
-左操作数减去右操作数A – B 等于 -10
*相乘操作符两侧的值A * B等于200
/左操作数除以右操作数B / A等于2
模(取余) - 左操作数除以右操作数的余数B%A等于0
++自增: 操作数的值增加1B++ 或 ++B 等于 21
自减: 操作数的值减少1B-- 或 --B 等于 19
public class Operator02 {
    public static void main(String[] args) {
        //声明两个操作变量 int double
        double number1= 50.5;
        int number2=5;
        // + - * / 加 减 乘 除
        System.out.println(" + 运算符结果 "+(number1+number2));
        System.out.println(" - 运算符结果 "+(number1-number2));
        System.out.println(" * 运算符结果 "+(number1*number2));
        System.out.println(" / 运算符结果 "+(number1/number2));

        // % 模,取余计算 商为整数,小数余数自然落下  为0.5
        System.out.println(" % 运算符结果 "+(number1%number2));
    }
}

输出结果:

 + 运算符结果 5.5
 - 运算符结果 -4.5
 * 运算符结果 2.5
 / 运算符结果 0.1
 % 运算符结果 0.5

自增(++)自减(–)运算符是一种特殊的算术运算符,自增自减运算符只需要一个操作数。可以放在操作数前之前,也可以放在操作数之后,操作数必须是一个 整数或者浮点型变量,。放在操作数前面的自增或自减,先会将变量的值加1(减1),然后再使该变量参与表达式运算,放在操作数后面的自增或者自减,先使表达式参与运算,然后再改变变量 加1(减1)。

说明:

++a(--a) // 表示在使用变量a之前,先使用a的值加(减)1
a++(a--) // 表示在使用变量a之后,使a的值加(减)1

粗略的分析++a,与 a++的作用都相当于a=a+1 。
假设a=4,则:

b=++a; // 先将a的值加1,然后赋给b, 此时a值为5,b值为5;

在看另一个语法,同样假设 a=4;

b=a++; //先将a的值赋给b,在将a的值变为5,此时a值为5,b值为4;
1.3.1 自增自减小练习
public class Operator03 {
    public static void main(String[] args) {
        int a = 5;
        int b = 5;
        int c=0;
        c=++a;
        System.out.println(c);
        c=b++;
        System.out.println(c);
        System.out.println(b);
        --b; // b为5
        System.out.println(a); // 由于   c=++a; //  a的值为6
        c = a+b;
        System.out.println(c);
    }
}

输出结果:

6
5
6
6
11
1.4 比较运算符

 比较运算符的运算结果是boolean型。当运算符关系成立时比较结果是true,反之,为false。一般比较运算符通常在条件语句中,来作为判断的依据。
假设变量A=10;变量B=20;

运算符描述例子
==检查如果两个操作数的值是否相等,如果相等,则条件为真。(A == B)为假
!=检查如果两个操作数的值是否相等,如果值不相等,则条件为真(A != B) 为真
>检查左操作数的值是否大于右操作数的值,如果是,那么条件为真。(A> B)为假
<检查左操作数的值是否小于右操作数的值,如果是,那么条件为真。(A
>=检查左操作数的值是否大于或等于右操作数的值,如果是,那么条件为真。(A> = B)为假
<=检查左操作数的值是否小于或等于右操作数的值,如果是,那么条件为真。(A <= B)为真
public class Operator04 {
    public static void main(String[] args) {
     // 声明两个相同类型的变量
        int number01 =4;
        int number02 =5;

        
        System.out.println("number01 > number02的返回值为:"+(number01>number02));
        System.out.println("number01 < number02的返回值为:"+(number01 number02的返回值为:"+(number01>=number02));
        System.out.println("number01 > number02的返回值为:"+(number01<=number02));
        System.out.println("number01 != number02的返回值为:"+(number01!=number02));
        System.out.println("number01 == number02的返回值为:"+(number01==number02));
    }
}

输出结果:

number01 > number02的返回值为:false
number01 < number02的返回值为:true
number01 > number02的返回值为:false
number01 > number02的返回值为:true
number01 !=number02的返回值为:true
number01 !=number02的返回值为:false
1.5 逻辑运算符

  返回的是布尔类型的表达式 boolean ,可以和 比较运算符组成更复杂的表达式。这是通过逻辑运算符来实现的。
假设
布尔变量A为真,变量B为假, boolean a = true; boolean b = false;

操作符描述例子
&逻辑与。并且的意思,当且仅当两个操作数都为真,条件才为真(A & B)为假。
&&短路与。只要两边有一个为false,就停止执行,结果就为false(A && B)为假。
l逻辑或。或者的意思,如果任何两个操作数任何一个为真,条件为真。(A l B)为真。
ll短路或。如果两边有一个结果为true,就不用判断另一个,结果为true(A ll B)为真。
逻辑非。用来反转操作数的逻辑状态。非真即假,非假即真!(A && B)为真。

思考:

&& 与 & ,短路与和逻辑与, || 与 | ,短路或和逻辑或有什么不同?

public class Operator05 {
    public static void main(String[] args) {
        
        int number01 =3;
        int number02 =4;
        int number03 =5;

        System.out.println((number01>number02)&&(number03>number02));
        System.out.println((number01>number02)&(number03>number02));
        System.out.println((number01>number02)|(number03>number02));
        System.out.println((number01>number02)||(number03>number02));
        System.out.println(!(number01>number02));
    }
}

输出结果:

false
false
true
true
true
1.6 三元运算符

 三元运算符又成条件运算符,或者三目运算符,三元运算符规则为:
若条件式的值为ture,则整个表达式取值为1, 否则取值为 2

条件式 ? 值 1: 值 2 
boolean a = 40<20?true:false;
int b = 50>25?12:13;
String c = 89>88?"你好中国":"Hello China";

输出结果:

false
12
你好中国
2 算术运算符的优先级

算术运算符的优先级决定了表达式中运算执行的先后顺序,通常优先级由高到低的顺序依次是:

[√ ] 自增和自减[√ ] 算术运算符[√ ] 比较运算符[√ ] 逻辑运算符[√ ] 赋值运算符

说明:
 不用刻意的记运算优先级,在编写程序时尽量使用 括号() 运算符来限定运算次序,以免产生错误运算顺序。

3 运算符练习 3.1 求三科平均成绩

需求:键盘自定义接受,语文,数学,Java成绩,求三科平均成绩? 求数学和java哪个成绩好?

public class OperatorAvg {
    public static void main(String[] args) {

        // 1 键盘接收三科成绩
        System.out.println("请输入语文成绩: ");
        double yuwen = new Scanner(System.in).nextDouble();
        System.out.println("请输入数学成绩: ");
        double shuxue = new Scanner(System.in).nextDouble();
        System.out.println("请输入java成绩: ");
        double java = new Scanner(System.in).nextDouble();

        //2 定义平均分数
        double avg = (yuwen+shuxue+java)/3;
        System.out.println("三科的平均成绩: "+avg);

        //3 哪个分数高  前提数学跟java不相等
        String result = (shuxue-java)>0?"数学成绩好":"java成绩好";
        System.out.println(result);
    }
}
3.1 幸运抽奖

需求: 键盘接受一个4位数字,以1开头随机4位数字,并分别求出个位,十位,百位,千位数,并求和,如果和大于等于20 ,就提示幸运会日,否则,提示非幸运会日;

import java.util.Scanner;
public class GoodLucks {
    public static void main(String[] args) {
        System.out.println("请输入您的4位会员卡号:");
        int cardNumber; // 会员卡号  假设有4位  1234
        cardNumber = new Scanner(System.in).nextInt();
        // 求会员卡个位卡号
        int geiwei = cardNumber%10; //分解获得个位
        System.out.println("geiwei:"+geiwei);
        // 怎么拿到十位? 分解4位数,去掉个位在取十位
        int shiwei =cardNumber/10%10;
        System.out.println("shiwei: "+shiwei);
        // 怎么拿到百位? 去掉个位和十位
        int baiwei = cardNumber/100%10;
        System.out.println("baiwei: "+baiwei);
        // 拿到千位 去掉个 十 百位
        int qianwei = cardNumber/1000;
        System.out.println("qianwei: "+qianwei);
        //提示结果
        String result = (geiwei+shiwei+baiwei+qianwei)>=20?"幸运会员":"不是幸运会员";
        System.out.println(result);
    }
}

输出结果:

请输入您的4位会员卡号:
1234
geiwei:4
shiwei: 3
baiwei: 2
qianwei: 1
不是幸运会员
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/712487.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号