Java基础(二)

👨‍💻博客主页:i新木优子👀
🏆Java基础系列教程:传送门💦
🧚‍♂️寄语:天下无难事,唯坚忍二字,为成功值要诀👣
🎉欢迎关注🔍点赞👍收藏⭐留言📝
🙏作者水平有限,发现错误欢迎留言轰炸


1.算术运算符

1.1运算符和表达式

  • 运算符:对常量或者变量进行操作的符号

  • 表达式:用运算符把常量或者变量连接起来符合Java语法的式子称为表达式。

    ​ 不同的运算符连接的表达式体现的时不同类型的表达式

  • 示例:

    int a = 1;

    int b = 2;

    int c = a + b;

    +:是运算符,并且是算术运算符

    a + b:是表达式,由于+是算术运算符,所以叫算术表达式

1.2算术运算符

package heima;

public class suanshuyunsuan {
	public static void main(String[] args){
		//定义两个变量
		int a = 6;
		int b = 4;
		
		System.out.println(a + b);
		System.out.println(a - b);
		System.out.println(a * b);
		System.out.println(a / b);  // 除法得到的是商
		System.out.println(a % b);  // 取余得到的是余数
		
		// 整数相除只能得到整数,要想得到小数,必须有浮点数的参与
		System.out.println(6.0 / 4);
	}

}

1.3字符的 “+” 操作

package heima;

public class ZiFu {
	public static void main(String[] args){
		int a = 10;
		char c = 'A';  // 'A'的值是65
		c = 'a';  // 'a'的值是97
		c = '0';  // '0'的值是48
		System.out.println(c + a);
		
		int j = c + a;  //自动提升到int类型
		System.out.println(j);
	}

}

在这里插入图片描述

算术表达式中包含多个数据类型的值的时候,整个算术表达式的类型会自动进行提升

提升规则:

  • byte类型、short类型和char类型将被提升到int类型

  • 整个表达式的类型自动提升到表达式中最高等级操作数同样的等级

    等级顺序:byte,short,char -> int -> long -> float -> double

1.4字符串的 “+” 操作

当 ”+“ 操作中出现字符串时,这个 ”+“ 是字符串连接符,而不是算术运算

  • “xiaoxin” + 666

当 ”+“ 操作中,如果出现了字符串,就是连接运算符,否则就是算术运算。当连续进行 ”+“ 操作时,从左到右逐个执行

  • 1 + 99 + “xiaoxin”
package heima;

public class ZiFuChuan {
	public static void main(String[] args) {
		
		System.out.println("xiao" + "xin");  // xiaoxin
		System.out.println("xiaoxin" + 666);  // xiaoxin666
		System.out.println(666 + "xiaoxin");  // 666xiaoxin
		
		System.out.println("xiaoxin" + 6 + 66);  // xiaoxin666
		System.out.println(1 + 99 + "xiaoxin");  // 100xiaoxin
		
	}

}

2.赋值运算符

注意:扩展的赋值运算符隐含了强制类型转换

3.自增自减运算符

package heima;

public class ZiZengZIJian {
	public static void main(String[] args){
		//定义变量
		int i = 10;
		System.out.println("i:" + i);
		
		//单独使用
		//i++;  // 使用这种居多
		//++i;
		//System.out.println("i:" + i);  // 11
		
		//参与操作使用
		//int j = i++;
		//System.out.println("i:" + i);  // i:11
		//System.out.println("j:" + j);  // j:10
	
		int j = ++i;
		System.out.println("i:" + i);  // i:11
		System.out.println("j:" + j);  // j:11
		
	}

}

注意:

  • ++ 和 – 既可以放在变量的后边,也可以放在变量的前边

  • 单独使用时,++ 和 – 无论放在后边还是前边,结果都一样

  • 参与操作使用时,如果放在变量的后边,先拿变量参与操作,后拿变量做 ++ 或 –

    参与操作使用时,如果放在变量的前边,先拿变量做 ++ 或 --,后拿变量参与操作

最常见的用法:单独使用

4.关系用算符

package heima;

public class GuanXi {
	public static void main(String[] args){
		int i = 10;
		int j = 20;
		int k = 10;
		
		//==
		System.out.println(i == j);  // false
		System.out.println(i == k);  // true
		System.out.println("-----");
		
		//!=
		System.out.println(i != j);  // true
		System.out.println(i != k);  // false
		System.out.println("-----");
		
		//>
		System.out.println(i > j);  // false
		System.out.println(i > k);  // false
		System.out.println("-----");
		
		//>=
		System.out.println(i >= j);  // false
		System.out.println(i >= k);  // true
		System.out.println("-----");
	}

}

5.逻辑运算符

package heima;

public class LuoJi {

	public static void main(String[] args) {
		int i = 10;
		int j = 20;
		int k = 30;
		
		//&  有false则false
		System.out.println((i > j) & (i > j));  // false & false --> false
		System.out.println((i < j) & (i > j));  // true & false --> false
		System.out.println((i > j) & (i < j));  // false & true --> false
		System.out.println((i < j) & (i < j));  // true & true --> true
		System.out.println("-------");
		
		//|  有true则true
		System.out.println((i > j) | (i > j));  // false | false --> false
		System.out.println((i < j) | (i > j));  // true | false --> true
		System.out.println((i > j) | (i < j));  // false | true --> true
		System.out.println((i < j) | (i < j));  // true | true --> true
		System.out.println("-------");
		
		//^  相同为false,不同为true
		System.out.println((i > j) ^ (i > j));  // false ^ false --> false
		System.out.println((i < j) ^ (i > j));  // true ^ false --> true
		System.out.println((i > j) ^ (i < j));  // false ^ true --> true
		System.out.println((i < j) ^ (i < j));  // true ^ true --> false
		System.out.println("-------");
		
		//!
		System.out.println((i > j));  // false --> false
		System.out.println(!(i > j));  //!false --> true
		System.out.println(!!(i > j));  //!!false --> false

	}

}

5.1短路逻辑运算符

package heima;

public class LuoJi {

	public static void main(String[] args) {
		int i = 10;
		int j = 20;
		int k = 30;
		
		//&&  有false则false
		System.out.println((i > j) && (i > j));  // false && false --> false
		System.out.println((i < j) && (i > j));  // true && false --> false
		System.out.println((i > j) && (i < j));  // false && true --> false
		System.out.println((i < j) && (i < j));  // true && true --> true
		System.out.println("-------");
		
		//||  有true则true
		System.out.println((i > j) || (i > j));  // false || false --> false
		System.out.println((i < j) || (i > j));  // true || false --> true
		System.out.println((i > j) || (i < j));  // false || true --> true
		System.out.println((i < j) || (i < j));  // true || true --> true
        
        //&& 和 &
        System.out.println((i++ > 100) & (j++ > 100));  // false & false --> false
        System.out.println("i:" + i);  // i:11
        System.out.println("j:" + j);  // j:21
        
        System.out.println((i++ > 100) && (j++ > 100));  // false && false --> false
        System.out.println("i:" + i);  // i:11
        System.out.println("j:" + j);  // j:20
	}

}

注意:

  • 逻辑与&,无论左边真假,右边都要执行

    短路与&&,如果左边为真,右边执行;如果左边为假,右边不执行

  • 逻辑或|,无论左边真假,右边都要执行

    短路或||,如果左边为假,右边执行;如果左边为真,右边不执行

6.三元运算符

6.1三元运算符

  • 格式:关系表达式 ? 表达式1 : 表达式2;

    示例:a > b ? a : b;

  • 计算规则:

    ​ 首先计算关系表达式的值

    ​ 如果值为true,表达式1的值就是运算结果

    ​ 如果值为false,表达式2的值就是运算结果

案例1:(两只老虎)

  • 分析:定义两个变量用于保存老虎的体重

    int weight1 = 180;

    int weight2 = 200;

  • 用三元运算符实现老虎体重的判断,相同返回true,不同返回false

    (weight1 == weight2) ? true : false;

  • 输出结果

    package heima;
    
    public class TwoTiger {
    
    	public static void main(String[] args) {
    		
    		int weight1 = 180;
    		int weight2 = 200;
    		
    		boolean a = weight1 == weight2 ? true : false;
    		System.out.println("a:" + a);
    
    	}
    
    }
    

案例2:(三个和尚)

需求:一个寺庙中住着三个和尚,已知他们的身高分别为150cm、185cm、165cm,请用程序来实现获取三个和尚的最高身高

  • 分析:定义三个变量保存和尚的身高

    int height1 = 150;

    int height2 = 185;

    int height3 = 165;

  • 用三元运算符获取前两个较高的身高,并用临时变量保存起来

    (height1 > height2) ? height1 : height2;

  • 用临时变量和第三个身高比较

    (tempheight > height3) ? tempheight : height3;

  • 输出结果

    package heima;
    
    public class ThreeMonk {
    	public static void main(String[] args) {
    		
    		int height1 = 150;
    		int height2 = 185;
    		int height3 = 165;
    		
    		int tempheight = (height1 > height2) ? height1 : height2;
    		int maxheight = tempheight > height3 ? tempheight : height3;
    		System.out.println("maxheight;" + maxheight);
    
    	}
    
    }
    
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

i新木优子

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值