02.运算符、Scanner类

Java基础知识 第2天

1.1 算数运算符

1.1.1 算数运算符概述

什么是运算符

​ 就是对常量和变量进行操作的符号

算数运算符有哪些

​ +,-,*,/,%,++,–

注意
一旦运算当中有不同类型的数据,那么结果将会是数据类型范围大的那种。

1.1.2 案例一

/**
 * 算术运算符的使用
 * 
 * 运算符:对常量和变量进行操作的符号
 * 表达式:用运算符连接起来的符合java语法的式子。不同类型的运算符连接起来的式子是不同的表达式。
 * 
 * 运算符分类:
 * 		算术运算符,赋值运算符,关系运算符,逻辑运算符,三元运算符。
 * 
 * 算术运算符:
 * 		+,-,*,/的基本使用
 */
public class OperatorDemo {
	public static void main(String[] args) {
		// 定义两个变量
		int a = 3;
		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(3 / 4);
		System.out.println(3.0 / 4);
	}
}

1.1.3 算数运算符取余和除法的区别

%:取余运算符。得到的是两个相除数据的余数。

/:除法运算符。得到是两个相除数据的商。

使用场景: %和/ 判断两个数据是否整除。

1.1.4 案例二

/**
 * 算数运算符取余和除法的区别
 */
public class OperatorDemo2 {
	public static void main(String[] args) {
		int a = 5;
		int b = 3;

		System.out.println(a / b);
		System.out.println(a % b);
	}
}

1.1.5 字符和字符串参与加法操作

**字符参与运算:**其实是拿该字符对应的数值来操作。‘a’ 97 , ‘A’ 65 , ‘0’ 48

**字符串参与运算:**这里其实做的不是加法运算,而是字符串拼接。字符串和其他类型的数据做拼接,结果是字符串类型的。

1.1.6 案例三

//字符和字符串参与加法操作的区别
public class OperatorDemo3 {
	public static void main(String[] args) {
		// 整数加法
		int a = 10;
		int b = 20;
		System.out.println(a + b);
		System.out.println("------------------");

		// 字符参与加法操作
		char c = '0';
		char c2 = 'a';
		System.out.println(a + c);
		System.out.println(a + c2);
		System.out.println("------------------");

		// 字符串参与加法操作
		System.out.println("hello" + a);
		System.out.println("hello" + a + b); // "hello"+10,然后再和b进行拼接
		System.out.println(a + b + "hello");
	}
}

1.1.7 算数运算符++和–的用法

++,–运算符:对变量做加1或者减1的操作。

++或者–既可以放在变量的后面,也可以放在变量的前面。

单独使用的时候,++或者–无论是放在变量的前面还是后面,结果是一样的。

参与操作的时候:

**如果++或者--在变量的后面,先拿变量参与操作,后变量做++或者--;**

如果++或者–在变量的前面,先变量做++或者–,后拿变量参与操作。

注意:

只有变量才能使用自增、自减运算符。常量不可发生改变,所以不能用。

1.1.8 案例四

//算数运算符++和--的用法
public class OperatorDemo4 {
	public static void main(String[] args) {
		int a = 10;
		System.out.println("a:" + a);

		// 单独使用
		// a++;
		// ++a;
		// System.out.println("a:" + a);

		// 参与操作使用
        int i = 1;
		//++ -- 在后面的情况,先赋值,再运算
		System.out.println("i++:"+(i++));  //1
		System.out.println("i:"+i); //2
		
		//++ -- 在前面的情况,先运算,再赋值
		int j = 1;
		System.out.println("++j:"+(++j));  //2
		System.out.println("j:"+j); //2
	}
}

1.2 赋值运算符

1.2.1 赋值运算符分类

基本的赋值运算符:=

扩展的赋值运算符:+=,-=,=,/=,%=

+=: a+=20;相当于a = (a的数据类型)(a + 20);

注意:

1. 只有变量才能使用赋值运算符,常量不能进行赋值。
2. 复合赋值运算符其中隐含了一个强制类型转换。

赋值运算符中,本身包含一个强制转换的动作,等价于(short)(sum+m)

1.2.2 案例五

//赋值运算符的使用
public class OperatorDemo5 {
	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);
	}
}

1.3 关系运算符

1.3.1 基本使用及注意事项

关系运算符包含以下内容:

==,!=,>,>=,<,<=

注意:

  1. 关系运算符的结果都是boolean型,要么是true,要么是false。
  2. 如果进行多次判断,不能连着写。
    例如:数学当中的写法,10 < x < 20,但是程序当中不允许这种写法。
  3. 关系运算符“==”不能误写成“=”,"="代表赋值。

1.3.2 案例六

//关系运算符
public class OperatorDemo6 {
	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的值输出
	}
}

1.4 逻辑运算符

1.4.1 逻辑运算符概述

逻辑运算符有哪些

​ &,|,^,!

​ &&,||

结论:

 & 逻辑与:有falsefalse| 逻辑或:有truetrue^ 逻辑异或:相同为false,不同为true! 逻辑非:非falsetrue,非truefalse&& 与(并且):全都是true,才是true;否则就是false
 
 || 或(或者):至少一个是true,就是true;全都是false,才是false

 !  非(取反):本来是true,变成false;本来是false,变成true

注意:

​ 1.逻辑运算符一般用于连接boolean类型的表达式或者值。

​ 2.与“&&”,或“||”,具有短路效果:如果根据左边已经可以判断得到最终结果,那么右边的代码将不再执行,从而节省一定的性能。

​ 3.与、或需要左右各自有一个boolean值,但是取反只要有唯一的一个boolean值即可。

​ 4.与、或两种运算符,如果有多个条件,可以连续写。
​ 两个条件:条件A && 条件B
​ 多个条件:条件A && 条件B && 条件C

1.4.2 案例七

//逻辑运算符:用于连接关系表达式
public class OperatorDemo7 {
	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
	}
}

1.4.3 逻辑运算符&&与&的区别

面试题:&&和&的区别?

​ 最终结果一样。

​ &&具有短路效果。左边是false,右边不执行。

​ &是无论左边是false还是true,右边都会执行

||和|的区别?

​ 最终结果一样

​ ||具有短路效果.左边是true,右边不执行

​ |是无论左边是false还是true,右边都会执行

1.4.4 案例八

//逻辑运算符&&与&的区别
public class OperatorDemo8 {
	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);
	}
}

1.5 三元运算符

一元运算符:只需要一个数据就可以进行操作的运算符。例如:取反!、自增++、自减–
二元运算符:需要两个数据才可以进行操作的运算符。例如:加法+、赋值=
三元运算符:需要三个数据才可以进行操作的运算符。

1.5.1 三元运算符概述

格式

​ (关系表达式)?表达式1:表达式2;

​ 如果条件为true,运算后的结果是表达式1;

​ 如果条件为false,运算后的结果是表达式2;

示例

​ 获取两个数中大数。

​ int x=3,y=4,z;

​ z = (x>y)?x:y; //z变量存储的就是两个数的大数

面试题:(1>2?99.0:9)结果为 9.0

注意

  1. 必须同时保证表达式A和表达式B都符合左侧数据类型的要求。
  2. 三元运算符的结果必须被使用。

1.5.2 案例九

//三元运算符
public class OperatorDemo9 {
	public static void main(String[] args) {
		int a = 10;
		int b = 20;

		int c = (a > b) ? a : b;
		System.out.println("c:" + c);
	}
}

1.6 移位运算符

>>  >>>  <<

1.7 重点和小结

1、使用(+,-,/,%,++,–等)算数运算符

2、取余和除法的区别

3、字符和字符串参与加法运算操作需要注意的事项

4、++和–的作用,以及++,–在前或在后的区别

5、赋值运算符和扩展运算符

6、关系运算符,关系运算符的结果

7、逻辑运算符的基本使用及&与&&的区别

8、三元运算符

第2章 键盘录入

2.1 键盘录入的基本步骤

2.1.1 键盘录入数据概述

我们目前在写程序的时候,数据值都是固定的,但是实际开发中,数据值肯定是变化的,所以,把数据改进为键盘录入,提高程序的灵活性。

键盘录入数据的步骤:

1.导包(位置放到class定义的上面)

​ import Java.util.Scanner;

2.创建对象

​ Scanner sc = new Scanner(System.in);

3.接收数据

​ int x = sc.nextInt();

2.1.2 案例十

import java.util.Scanner;

//实现键盘录入数据
public class ScannerDemo {
	public static void main(String[] args) {
		//创建键盘录入数据的对象
		Scanner sc = new Scanner(System.in);
        
        //接收数据
		System.out.println("请录入一个整数:");
		int i = sc.nextInt();
		
		//输出数据
		System.out.println("i:"+i);
	}
}

2.1.3 案例十一

//键盘录入两个数据并求和
import java.util.Scanner;

public class ScannerTest1 {
	public static void main(String[] args) {
        // 创建对象
		Scanner sc = new Scanner(System.in);

		// 接收数据
		System.out.println("请输入第一个数据:");
		int a = sc.nextInt();

		System.out.println("请输入第二个数据:");
		int b = sc.nextInt();

		// 对数据进行求和
		int sum = a + b;
		System.out.println("sum:" + sum);
	}
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

what's your name.

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

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

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

打赏作者

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

抵扣说明:

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

余额充值