1. 运算符
1.1 概述
1.2 算数运算符
package com.study.demo.operator;
/**
* @Auther: lds
* @Date: 2018/10/15
* @Description:
*/
public class OperatorDemo01 {
public static void main(String[] args) {
// 定义两个变量
int a = 3;
int b = 4;
System.out.println(a+b); // 7
System.out.println(a-b); // -1
System.out.println(a*b); // 12
System.out.println(a/b); // 0
System.out.println(3/4.0); // 0.75
System.out.println(3.0/4); // 0.75
}
}
package com.study.demo.operator;
/**
* @Auther: lds
* @Date: 2018/10/15
* @Description:
*/
public class OperatorDemo02 {
public static void main(String[] args) {
int a = 5;
int b = 3;
System.out.println(a / b); // 1
System.out.println(a % b); // 2
}
}
package com.study.demo.operator;
/**
* @Auther: lds
* @Date: 2018/10/15
* @Description:
*/
public class OperatorDemo03 {
public static void main(String[] args) {
// 整数的加法
int a = 10;
int b = 20;
System.out.println(a + b); // 30
System.out.println("-----------------");
// 字符参与加法的操作
char c = '0';
char d = 'a';
System.out.println(a + c); // 58
System.out.println(a + d); // 107
System.out.println("-----------------");
// 字符串参与加法操作
System.out.println("hello" + a); // hello10
System.out.println("hello" + a + b); // "hello"+10="hello10",然后再和b进行拼接 hello1020
System.out.println(a + b + "hello"); // 从左到右依次计算,先求和,在连接 30hello
}
}
注:数字0是编码值为 48 所对应的字符常量,字母是编码值为 97 所对应的字符常量,它们都对应着ASCII表,具体可查看 https://baike.baidu.com/item/ASCII/309296?fr=aladdin
如果++、-- 写在变量的后面,先拿变量本来的值草鱼操作,结果后变量做++、-- 操作。
如果++、-- 写在变量的前面,先把变量做++、--,再用改变后的值参与++、-- 操作。
package com.study.demo.operator;
/**
* @Auther: lds
* @Date: 2018/10/15
* @Description:
*/
public class OperatorDemo04 {
public static void main(String[] args) {
int a = 10;
System.out.println("a = " + a);
// 单独使用++
a++;
// ++a;
System.out.println("a = " + a);
// 参与操作使用
// int b = a++;
int b = ++a;
System.out.println("a = " + a);
System.out.println("b = " + b);
}
}
1.3 赋值运算符
package com.study.demo.operator;
/**
* @Auther: lds
* @Date: 2018/10/15
* @Description:
*/
public class OperatorDemo05 {
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.4 关系运算符
package com.study.demo.operator;
/**
* @Auther: lds
* @Date: 2018/10/15
* @Description:
*/
public class OperatorDemo06 {
public static void main(String[] args) {
int a = 10;
int b = 20;
int c = 10;
System.out.println(a == b); // false
System.out.println(a == c); // true
System.out.println("-----------------");
System.out.println(a != b); // true
System.out.println(a != c); // false
System.out.println("-----------------");
System.out.println(a > b); // false
System.out.println(a > c); // false
System.out.println("-----------------");
System.out.println(a >= b); // false
System.out.println(a >= c); // true
System.out.println("-----------------");
int x = 3;
int y = 4;
System.out.println(x == y); // false
// System.out.println(x = y);// 把 y 赋值给 x,把 x 的值输出
boolean bb = (x == y);
// 报错
// boolean cc = (x = y);
int cc = (x = y);
}
}
1.5 逻辑运算符
package com.study.demo.operator;
/**
* @Auther: lds
* @Date: 2018/10/15
* @Description:
*/
public class OperatorDemo07 {
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
}
}
package com.study.demo.operator;
/**
* @Auther: lds
* @Date: 2018/10/15
* @Description:
*/
public class OperatorDemo08 {
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); // 4
System.out.println("y:" + y); // 4
}
}
1.6 三元运算符
package com.study.demo.operator;
/**
* @Auther: lds
* @Date: 2018/10/15
* @Description:
*/
public class OperatorDemo09 {
public static void main(String[] args) {
int a = 10;
int b = 20;
int c = (a > b) ? a : b;
System.out.println("c:" + c); // 20
}
}
获取三个数的最大值
package com.study.demo.operator;
/**
* @Auther: lds
* @Date: 2018/10/15
* @Description:
*/
public class OperatorDemo10 {
public static void main(String[] args) {
// 定义三个 int 类型的变量
int a = 10;
int b = 30;
int c = 20;
// 先比较两个整数的大值
int temp = ((a > b) ? a : b);
int max = ((temp > c) ? temp : c);
System.out.println("max:" + max); // 30
}
}
2. 键盘录入Scanner
2.1 概述
我们目前在写程序的时候,数值都是固定的,但是实际开发中,数据肯定是变化的,所以,把数据改为键盘输入的,提高程序的灵活性。
2.2 引用数据类型的使用格式
与定义基本数据类型变量不同,引用数据类型的变量定义及赋值有一个相对固定的步骤或格
式。
1. 导包:
使用 import 导包,在类的所有代码之前导包(找到要使用的类型), java.lang 包下的所有类
无需导入,可以直接使用
2. 定义变量,并创建对象赋值:
数据类型 变量名 = new 数据类型();
3. 调用方法,每种引用数据类型都有其功能,我们可以调用该类型实例的功能:
变量名.方法名();
2.3 基本使用步骤
1. 导包(位置放到 class 定义的上面)
import java.util.Scanner;
2. 创建对象
Scanner sc = new Scanner(System.in);
3. 调用方法接收数据
int x = sc.nextInt();
package com.study.demo.scanner;
import java.util.Scanner;
/**
* @Auther: lds
* @Date: 2018/10/15
* @Description:
*/
public class ScannerDemo01 {
public static void main(String[] args) {
//创建键盘录入数据的对象
Scanner sc = new Scanner(System.in);
//接收数据
System.out.println("请录入一个整数:");
int i = sc.nextInt();
//输出数据
System.out.println("i:" + i);
}
}
例:键盘输入两个数的并求和
package com.study.demo.scanner;
import java.util.Scanner;
/**
* @Auther: lds
* @Date: 2018/10/15
* @Description:
*/
public class ScannerDemo02 {
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);
}
}
大家可以练习上面的表达式,最大值哦ヾ(๑╹◡╹)ノ"ヾ(๑╹◡╹)ノ"ヾ(๑╹◡╹)ノ"