提纲:
1、运算符
2、算术运算符
3、赋值运算符
4、关系运算符
5、逻辑运算符
6、三元运算符
7、表达式
8、作业
什么是运算符?
以下表达式:
a + b
2 - 3
这里的a,b,2,3叫做操作数
操作数中间的+,-等,就叫做运算符
以下都是算术运算符
使用算术运算符是需要注意
public class Demo4{
public static void main(String[] args){
System.out.println("中" + "国");//打印出中国
}
}
System.out.println(3/2);// 1
System.out.println(3.0/2);//1.5
System.out.println(5%3);// 5 / 3 = 1 ... 2 所以结果时 2
System.out.println(3%5);// 一个小的数对一个大的数取模,就等于它本身 3
int a = 3;
int b = 3;
a++;
b--;
System.out.println(a);//4
System.out.println(b);//2
int a = 3;
int b = 3;
++a;
--b;
System.out.println(a);//4
System.out.println(b);//2
int a = 3;
int b;
b = a++ + 10;
System.out.println(a);//4
System.out.println(b);//13
int a = 3;
int b;
b = ++a + 10;
System.out.println(a);//4
System.out.println(b);//14
以下都是Java中的赋值运算符。
说明:
public class Demo5{
public static void main(String[] args) {
byte x = 10;
x += 20;// 相当于 x = (byte)(x+20);
System.out.println(x);// 30
}
}
比较运算符,又叫关系运算符,它是用来判断两个操作数的大小关系及是否相等关系的,结果是布尔值true或者false 。
说明:
示例代码:
/*
关系运算符
*/
public class Test3Operation
{
public static void main(String[] args)
{
/*
关系运算符:表示两个数的关系的,计算结果是boolean类型的。True,False
>,<,>=,<=,==,!=
==,比较两个数值相等。如果相等,结果就是true,否则就是false
!=,
*/
int a = 4;
int b = 4;
boolean res = a > b;
boolean res2 = a <= b;
System.out.println(res);//true
System.out.println(res2);//false
boolean res3 = a == b;// 4 == 4,true
System.out.println(res3);
boolean res4 = a != b;// 4!= 4,false
System.out.println(res4);//false
}
}
逻辑运算符,它是用于布尔值进行运算的,运算的最终结果为布尔值true或false
说明:
运算规则:在参加计算的操作数中,如果都为true,结果就为true。有一个为false,结果就为false。
总结:一假则假,全真才真。
运算规则:在参加计算的操作数中,如果都为false,结果才为false,有一个为true,结果就为true。
总结:一真则真,全假才假。
运算规则:原来是true,取反后就是false,如果原来是false,取反后就是true
!true-->false
!false-->true
示例代码:
/*
逻辑运算符
*/
public class Test4Operation
{
public static void main(String[] args)
{
/*
逻辑运算符:&&,||,!
注意点:
A:逻辑运算符的操作数要求是boolean类型:true,false
B:计算结果也是boolean类型:true,false
&&:与操作,并且
运算规则:在整个计算过程中,如果有一个值为false,那么整个结果就为false。
除非所有的值都是true,那么结果才为true。
结论:一假则假,全真才真。
||:或操作,或者
运算规则:在整个计算过程中,如果有一个值为true,那么整体结果就为true。
除非所有的值都是false,那么结果才为false。
结论:一真则则,全假才假。
!:取非,也叫取反,一元运算符,就是操作数就一个
!true-->false
!false-->true
*/
boolean b1 = true;
boolean b2 = false;
boolean b3 = false;
boolean res1 = b1 && b2 && b3;
System.out.println(res1);
boolean res2 = 3 < 5 && 3 == 4;
System.out.println(res2);//false
boolean res3 = b1 || b2 || b3;
System.out.println(res3);
boolean res4 = !b1;//将b1的值,取反,再赋值给res4这个变量
System.out.println(res4);//false
int a = 3;
int b = (a++) + (++a);
/*
3 + 5
a=4 a=5
*/
System.out.println(b);//8
System.out.println(a);//5
a = 3;
int c = --a + a++;
/*
2 + 2
a=2 a=3
*/
System.out.println(c);//4
System.out.println(a);//3
}
}
三元运算符运算规则
先判断条件表达式的值,若为true,运算结果为表达式1;若为false,运算结果为表达式2
方式一:
System.out.println( 3>2 ? “正确” : “错误” );
// 三元运算符运算后的结果为true,运算结果为表达式1的值“正确”,然后将结果“正确”,在控制台输出打印
方式二:
int a = 3;
int b = 4;
String result = (a==b) ? “相等” : “不相等”;
System.out.println(result);
//三元运算符运算后的结果为false,运算结果为表达式2的值“不相等”,然后将结果赋值给了变量result
方式三:
int n = (3>2 && 4>6) ? 100 : 200;
System.out.println(n);
//三元运算符运算后的结果为false,运算结果为表达式2的值200,然后将结果200赋值给了变量n
示例代码:
/*
三元运算符
*/
public class Test5Operation
{
public static void main(String[] args)
{
/*
三元运算符:目的,根据条件,选择一种结果。
运算符:
? :
X ? Y : Z
X:布尔类型的表达式:true/false
Y:结果1
Z:结果2
X的值为true,那么整个三元运算符结果就是Y。
X的值为false,那么整个三元运算符的结果就是Z。
*/
int score = 59;
String res = score == 100 ? "满分" : "不是满分";
System.out.println(res);
//给定一个成绩,判断是否及格?及格,不及格
String res2 = score >= 60 ? "及格" : "不及格";
System.out.println(res2);
String res3 = !(score < 60) ? "及格" :"不及格";
System.out.println(res3);
}
}
表达式:操作数和运算符组成一个式子。
表达式的值和类型:将表达式进行计算得到的结果就是表达式的值。
读取控制台上输入的数据。
//step1:导入Scanenr这个扫描器
imprt java.util.Scanner;
//step2:创建Scanner扫描器
Scanner sc = new Scanner(System.in);
//step3:使用sc调用对应的方法,来读取键盘的输入
int num1 = sc.nextInt();//读取一个int类型的数据
double num2 = sc.nextDouble();//读取一个double类型的数据
String str = sc.next();//读取一个String类型的数据
char c = sc.next().charAt(0);//读取一个char类型的字符串
1、请通过代码完成:
基本类型的运算
一家商场在举行打折促销,所有的商品都进行8折优惠。一位程序员把这个逻辑写成:
short price = ...; // 先计算出原价
short realPrice = price * 8 / 10;//再计算出打折之后的价格
int price = 1;
int realPrice = price * 8 / 10;//0
double price = 1.0;
double realPrice = price * 8 / 10; // 0.8
问:
A:这段代码是否正确?
B:如果正确,假设price位100,那么计算之后的realPrice值为多少?
C:如果不正确,应该怎么改正?
3、int a,b;请判断b是不是a的因子
2、定义一个3位数的整数n,请用表达式表示n的个位数,十位数,百位数。