04-java基础语法(运算和Scanner)

运算符和Scanner
运算符
1.类型转换
+是一个运算符, 我们应该能够看懂,做数据的加法。
boolean类型不能转换为其他的数据类型
默认转换: 范围小的数据类型直接转换成范围大的数据类型
转换规则byte,short,char—int—long—float—double
注意事项byte,short,char相互之间不转换,他们参与运算首先转换为int类型
格式: 范围大的数据类型 变量 = 范围小的数据类型值;
图解:
在这里插入图片描述

public class Demo09TypeCast {
	public static void main(String[] args) {
		//直接输出了运算的结果
		System.out.println(3 + 4);
		
		//定义两个int类型的变量
		int a = 3;
		int b = 4;
		int c = a + b;
		System.out.println(c);
		
		//定义一个byte类型,定义一个int类型
		byte bb = 2;
		int cc = 5;
		System.out.println(bb + cc);
		
		//我能不能不直接输出,用一个变量接收呢?
		//用变量接收,这个变量应该有类型
		//byte dd = bb + cc;//可能损失精度
		//byte,short,char类型在参与运算的时候会把自己提升为int类型
		int dd = bb + cc;
		System.out.println(dd);
	}
}

强制转换: 表示范围大的数据类型强制转换成范围小的数据类型
范围小的数据类型 变量 =(范围小的数据类型) 范围大的数据类型值;
不建议,有可能损失精度
代码演示

public class Demo10TypeCast {
	public static void main(String[] args) {
		int a = 3;
		byte b = 4;
		int c = a + b;
		//byte d = a + b;//可能损失精度
		byte d = (byte) (a + b);
	}
}

2.赋值运算符
为变量赋值的运算符
在这里插入图片描述
扩展的赋值运算符:+=、-=、*=、/= 、%=
左边+=右边 相当于 左边=左边+(右边)。
注意:左边不能是常量
隐含了一个强制类型转换.

public class Demo05Operator {
	public static void main(String[] args) {
		// 把10赋值给int类型的变量a
		int a = 10;

		// += 把左边和右边的数据进行运算,最后赋值给左边,左边的只能是变量
		a += 10;// 相当于a = a + 10
		System.out.println("a:" + a);
		System.out.println("----------------------");

		short s = 10;
		// s += 20; // 相当于 s = s + 20;
		s = (short) (s + 20);
		System.out.println("s:" + s);
	}
}

3.比较运算符
又叫关系运算符,即判断两个操作数的大小关系及是否相等的关系,比较运算符的返回一定为布尔值
在这里插入图片描述
在这里插入图片描述
注意事项
关系运算符“==”不能误写成“=” 。

public class Demo06Operator {
	public static void main(String[] args) {
		int a = 10;
		int b = 20;
		int c = 10;

		System.out.println(a == b);
		System.out.println(a == c);
		System.out.println("-----------------");
		System.out.println(a != b);
		System.out.println(a != c);
		System.out.println("-----------------");
		System.out.println(a > b);
		System.out.println(a > c);
		System.out.println("-----------------");
		System.out.println(a >= b);
		System.out.println(a >= c);
		System.out.println("-----------------");

		int x = 3;
		int y = 4;
		// System.out.println(x == y);
		// System.out.println(x = y);// 把y赋值给x,把x的值输出
		boolean bb = (x == y);
		// boolean cc = (x = y);// 报错
		int cc = (x = y);//正确
	}
}

4.逻辑运算符
逻辑运算符只能操作布尔值(这个布尔值可以使字面值也可以是布尔表达式),结果同样是一个布尔值。
在这里插入图片描述
基本使用: &(与),|(或),^(异或),!(非)
与:& 有false则false
或:| 有true则true
异或:^ 相同则false,不同则true
非:! true则false,false则true

public class Demo07Operator {
	public static void main(String[] args) {
		int a = 10;
		int b = 20;
		int c = 30;

		System.out.println((a > b) & (a > c));// false & false
		System.out.println((a < b) & (a > c)); // true & false
		System.out.println((a > b) & (a < c)); // false & true
		System.out.println((a < b) & (a < c)); // true & true
		System.out.println("---------------");
		System.out.println((a > b) | (a > c));// false | false
		System.out.println((a < b) | (a > c)); // true | false
		System.out.println((a > b) | (a < c)); // false | true
		System.out.println((a < b) | (a < c)); // true | true
		System.out.println("---------------");
		System.out.println((a > b) ^ (a > c));// false ^ false
		System.out.println((a < b) ^ (a > c)); // true ^ false
		System.out.println((a > b) ^ (a < c)); // false ^ true
		System.out.println((a < b) ^ (a < c)); // true ^ true
		System.out.println("---------------");
		System.out.println((a > b)); // false
		System.out.println(!(a > b)); // !false
		System.out.println(!!(a > b)); // !!false
	}
}

&&和&的区别
单&时,左边无论真假,右边都进行运算;
双&时,如果左边为真,右边参与运算,如果左边为假,那么右边不参与运算。
“|”和“||”的区别同理,双或时,左边为真,右边不参与运算。

public class Demo08Operator {
	public static void main(String[] args) {
		int a = 10;
		int b = 20;
		int c = 30;

		System.out.println((a > b) && (a > c));// false && false
		System.out.println((a < b) && (a > c)); // true && false
		System.out.println((a > b) && (a < c)); // false && true
		System.out.println((a < b) && (a < c)); // true && true
		System.out.println("---------------");
		System.out.println((a > b) || (a > c));// false || false
		System.out.println((a < b) || (a > c)); // true || false
		System.out.println((a > b) || (a < c)); // false || true
		System.out.println((a < b) || (a < c)); // true || true
		System.out.println("---------------");

		int x = 3;
		int y = 4;
		// System.out.println((x++ > 4) & (y++ > 5)); // false & false
		System.out.println((x++ > 4) && (y++ > 5)); // false && false
		System.out.println("x:" + x);
		System.out.println("y:" + y);
	}
}

注意: 另外在Java中不可以写成3<x<6,应该写成x>3 && x<6 。
当短路的优点:只要能判断出结果则后边的部分就不再判断,日常开发中全部使用短路。
5.三元运算符
三元运算符即三个操作数参与计算的运算符。
格式:
(条件表达式)?结果1:结果 2;
运算规则:
判断条件表达式
true,运算结果为表达式1
false,运算结果为表达式2
如:

int i = 10;
		int j = 20;
		System.out.println(i>j?"i的值大":"j的值大");
		//打印结果为j的值大

6.运算符优先级
6.1优先级概念
运算符运算的先后顺序,优先级越高(数字越小),计算顺序越靠前。
比如,当赋值运算符=与+运算符都作用在一个变量上时,先计算加法,再计算赋值。
如:

int i,j; 
		i = 10;
		//对i这个变量有两个运算符操作,分别为=与+。
		j = i + 20;
		System.out.println(j);
		//最终打印结果为30。说明先计算+后计算=

6.2优先级规则
优先级相同的情况下,按照从左到右的顺序依次运算
在这里插入图片描述
在这里插入图片描述
引用数据 类型
1.引用数据类型使用步骤(重点是记住步骤):
导包:
使用import导包,在类的所有代码之前导包(找到要使用的类型)
定义变量,并创建对象赋值
数据类型 变量名 = new 数据类型();
调用方法,每种引用数据类型都有其功能,我们可以调用该类型实例的功能:
变量名.方法名();
2.键盘录入:Scanner类(也可以叫做Scanner类型)
Scanner类是引用数据类型的一种,我们可以使用该类来完成用户键盘录入,终于不需要我们帮用户指定购物数量了,用户可以自己从键盘录入想买的数量了。
Scanner使用步骤:
导包:import java.util.Scanner;

创建对象实例:Scanner sc = new Scanner(System.in);
调用方法:
nextInt():接收一个整数
如:
int i = sc.nextInt(); 用来接收控制台录入的数字

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值