一起学JAVA基础之运算符

网友投稿 234 2022-09-01


一起学JAVA基础之运算符

目录1 运算符1.1 概述1.2 运算符速查表1.3 练习:测试自增自减1.4 练习:测试逻辑运算符1.5 练习:求两数的最大值1.6 练习:求平年闰年2 拓展补充:2.1 总结1:算术运算符之自增自减运算符2.2 总结2:逻辑运算符2.3 总结3:优先级控制总结

1 运算符

1.1 概述

运算符 用于连接 表达式 的 操作数,并对操作数执行运算。

例如,表达式num1+num2,其操作数是num1和num2,运算符是”+”。

在java语言中,运算符可分为5种类型:

算术运算符、赋值运算符、关系运算符、逻辑运算符、位运算符。

根据操作数的不同,运算符又分为单目运算符、双目运算符和三目运算符。

单目运算符只有一个操作数,双目运算符有两个操作数,三目运算符则有三个操作数。

位运算符涉及到二进制位的运算,在java 程序中运用不是很多。

1.2 运算符速查表

1.3 练习:测试自增自减

创建包: cn.tedu.basic

创建类: TestOperator.java

package cn.tedu.basic;

/**本类用于测试取余运算符*/

public class TestOperator {

//0.创建程序的入口函数main

public sKPPPKWscEtatic void main(String[] args) {

//1.测试除法与取余数

System.out.println(25 / 10);//2

System.out.println(25 % 10);//5

//2.练习1:获取一个两位数59的十位与个位

int x = 59;

System.out.println(x/10);//打印十位,5

System.out.println(x%10);//打印个位,9

//3.练习2:获取一个三位数159的百位、十位与个位

int y = 159;

System.out.println(y / 100);//打印百位

System.out.println(y / 10 % 10);//打印十位

System.out.println(y % 10);//打印个位

//4.测试自增自减运算符

/** 前缀式:符号在前:++a --a ,先改变变量本身的值,再使用,比如打印

* 后缀式:符号在后: a++ a--,先使用,再改变变量本身的值

* ++:相当于给变量本身的值+1

* --: 相当于给变量本身的值-1*/

System.out.println("我是一个无情的分界线");

/**普通的四则运算并不会改变变量本身的值

* 自增自减运算符才会改变变量本身的值*/

int z = 1;

System.out.println(z+4);//5

System.out.println(z);//1

int a = 1;

System.out.println(++a);//2

System.out.println(a);//2

int b = 1;

System.out.println(b++);//1

System.out.println(b);//2

int c = 1;

System.out.println(--c);//0,符号在前,先自减,再打印

System.out.println(c);//0,上面已经自减过了

int d = 1;

System.out.println(d--);//1,符号在后,先打印,再自减

System.out.println(d);//0,打印过后,自减成0

//之前的代码会对后面的代码产生影响,c的值是0

System.out.println(c);//0

System.out.println(--c-c-c--);//1,-1-(-1)-(-1)=1

System.out.println(c);//-2,经历了两次自减,所以0-2=-2

}

}

1.4 练习:测试逻辑运算符

创建包: cn.tedu.basic

创建类: TestOperator2.jKPPPKWscEava

package cn.tedu.basic;

/**本类用于测试逻辑运算符*/

public class TestOperator2 {

public static void main(String[] args) {

/**与:全真才真*/

System.out.println("测试单与:");

System.out.println(true & true);

System.out.println(true & false);

System.out.println(false & true);

System.out.println(false & false);

System.out.println("测试双与:");

System.out.println(true && true);

System.out.println(true && false);

System.out.println(false && true);

System.out.println(false && false);

/**或:全假才假*/

System.out.println("测试单或:");

System.out.println(true | true);

System.out.println(true | false);

System.out.println(false | true);

System.out.println(false | false);

System.out.println("测试双或:");

System.out.println(true || true);

System.out.println(true || false);

System.out.println(false || true);

System.out.println(false || false);

}

}

1.5 练习:求两数的最大值

创建包: cn.tedu.basic

创建类: TestMaxNum.java

package cn.tedu.basic;

import java.util.Scanner;

package cn.tedu.basic;

import java.util.Scanner;

/**需求:接收用户输入的两个整数,并比较输出这两个数的最大值*/

public class TestMaxNum {

public static void main(String[] args) {

//1.提示用户输入

System.out.println("请输入您要比较的第一个整数:");

//2.接收用户输入的整数,并把这个值交给变量a来保存

int a = new Scanner(System.in).nextInt();

System.out.println("请输入您要比较的第二个整数:");

int b = new Scanner(System.in).nextInt();

//3.比较接收两个数,使用三元运算符

/**1 ? 2 : 3

* 1是表达式,若1的结果为true,结果取2位置,若1的结果为false,结果取3位置

* */

//4.定义变量max来保存比较的最大值

int max = a > b ? a : b;

//5.打印最大值

System.out.println("两个数的最大值是:"+max);

/**思考题:如何判断3个数的最大值? int max = a>b?(a>c?a:c):(b>c?b:c);*/

}

}

1.6 练习:求平年闰年

创建包: cn.tedu.basic

创建类: TestYear.java

需求:接收用户输入的年份,判断是平年还是闰年

需求:接收用户输入的年份,判断是平年还是闰年

package cn.tedu.basic;

import java.util.Scanner;

/**

* 需求:接收用户输入的年份,判断是平年还是闰年

* 如果年份是闰年,需要满足下面两个条件之一:

* 条件1:能被4整除,并且不能被100整除

* 条件2:能被400整除

* */

public class Test3_Year {

public static void main(String[] args) {

//1.提示并接收用户输入的年份

System.out.println("请输入您要判断的年份:");

int year = new Scanner(System.in).nextInt();

//2.定义一个变量用来保存结果

String result = "平年";//默认值是平年,假设每年都是平年

//3.判断用户输入的年份是否满足闰年的条件

/**解决方案1*/

/**条件1:能被4整除,并且不能被100整除*/

// if(year % 4 == 0) {//能被4整除

// if(year %100 != 0) {//不能被100整除

// result = "闰年";//符合闰年的条件1,修改结果为闰年

// }

// }

// /**条件2:能被400整除*/

// if(year % 400 == 0) {//能被400整除

// result = "闰年";//符合闰年的条件2,修改结果为闰年

// }

/**解决方案2*/

/**判断结构 if(判断条件){满足判断条件以后执行的代码} */

//if(条件1 || 条件2){是闰年 }

//if((小条件1 && 小条件2) || 条件2){ 是闰年 }

//if((能被4整除 && 不能被100整除) || 能被400整除){ 是闰年 }

if((year % 4 == 0 && year %100 != 0) || year % 400 == 0){

result = "闰年";//符合闰年的条件,修改结果为闰年

}

System.out.println(year+"年是"+result);

}

}

2 拓展补充:

2.1 总结1:算术运算符之自增自减运算符

a是操作数,++是自增运算符,- -是自减运算符,自增和自减运算符即可以放在变量的前面,也可以放在变量的后面,例如:a++、++a、a- -、- -a等。

自增(++):将变量的值加1

分前缀式(如++a)和后缀式(如a++)。前缀式是先加1再使用;后缀式是先使用再加1。

自减(- -):将变量的值减1

分前缀式(如- -a)和后缀式(如a- -)。前缀式是先减1再使用;后缀式是先使用再减1。

2.2 总结2:逻辑运算符

逻辑运算符连接两个关系表达式或布尔变量,用于解决多个关系表达式的组合判断问题

注意逻辑运算符返回的运算结果为布尔类型

通常,我们用0表示false,用1表示true

与:表示并且的关系

&单与: 1 & 2 ,结果想要是true,要求1和2都必须是true

&&双与(短路与):1 && 2 ,当1是false时,2会被短路,提高程序的效率

或:表示或者的关系

|单或: 1 | 2,结果想要是true,要求1和2只要有一个为true就可以

||双或(短路或):1 || 2,当1是true时,2会被短路,提高程序效率

2.3 总结3:优先级控制

当一个表达式包含多个运算符时,就需要考虑运算符的优先级,优先级高的运算符先参与运算,优先级低的运算符后参与运算。在实际的开发中,不需要特别去记忆运算符的优先级别,也不要刻意的使用运算符的优先级别,对于不清楚优先级的地方使用小括号辅助进行优先级管理。

通常优先级由高到底的顺序依次是:1. 括号级别最高,逗号级别最低;

2. 单目 > 算术 > 位移 > 关系 > 逻辑 > 三目 > 赋值。

3. 除了单目运算符、赋值运算符和条件运算符,其他的运算符都是从左到右结合的。

总结


版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:11 js处理多窗口(11月23日是什么星座)
下一篇:7 获取页面元素属性(7723游戏盒下载)
相关文章

 发表评论

暂时没有评论,来抢沙发吧~