算数运算符
java中算数运算符有:+ 加法运算符、 - 减法运算符、 * 乘法运算符、 / 除法运算符、% 取余运算符
注意:(1)在java语言中,两个整数相除,结果保留整数部分,丢弃小数部分。如果需要保留小数部分,推荐将其中一个操作数*1.0即可 (2)0不能作除数
/**
* 编程实现算数运算符的使用
*/
public class ArithmeticTest {
public static void main(String[] args) {
// 1.声明两个int类型的变量并初始化
int ia = 6;
int ib = 2;
System.out.println("ia = " + ia);
System.out.println("ib = " + ib);
System.out.println("---------------------------------------");
// 2.实现算数运算符的使用
int ic = ia + ib;
System.out.println("ic = " + ic); //后续代码可以反复使用ic
// 其中ia + ib这个整体叫做表达式,ia、ib叫做操作数 +叫做操作符/运算符
//后续不需要使用就可以像下面这样打印
System.out.println(ia + ib); // 8
System.out.println(ia - ib); // 4
System.out.println(ia * ib); // 12
System.out.println(ia / ib); // 3
System.out.println(ia % ib); // 0
System.out.println("---------------------------------------");
//在java语言中,两个整数相除,结果保留整数部分,丢弃小数部分
System.out.println(5 / 2); // 2
// 如果希望保留该小数部分应该如何处理?使两个操作数不完全是整数即可
System.out.println((double)5 / 2); // 2.5
System.out.println((double)(5 / 2)); // 2.0 注意这里
System.out.println(5*1.0 / 2); // 2.5 推荐该方法
System.out.println("---------------------------------------");
//System.out.println(5 / 0); // ArithmeticException算数异常 0不能做除数
System.out.println(5 / 0.0); // Infinity无穷
System.out.println(0 / 0.0); // NaN 不是一个数字
}
}
关系运算符
关系运算符的结果一定是boolean类型的
/**
* 编程实现关系运算符的使用
* 关系运算符的结果一定是boolean类型的
*/
public class RelationTest {
public static void main(String[] args) {
// 1.声明两个int类型的变量并初始化
int ia = 5;
int ib = 2;
// 2.使用关系运算符使用并打印结果
boolean b1 = ia > ib;
System.out.println("b1 = " + b1);
System.out.println(ia > ib); //true
System.out.println(ia >= ib); //true
System.out.println(ia < ib); //false
System.out.println(ia <= ib); //false
System.out.println(ia == ib); //false
System.out.println(ia != ib); //true
}
}
案例:提示用户输入一个整数,使用关系运算符判断该整数是否为负数,若是则打印true,若不是则打印false
import java.util.Scanner;
/**
* 编程使用关系运算符实现附属判断
*/
public class FushuTest {
public static void main(String[] args) {
// 1.提示用户输入一个整数并使用变量记录
System.out.println("请输入一个整数:");
Scanner sc = new Scanner(System.in);
int num = sc.nextInt();
// 2.判断该整数是否为负数
boolean b1 = num < 0;
System.out.println("b1 = " + b1);
System.out.println(num < 0);
}
}
自增减运算符
ia++ 表示让变量ia的值作为表达式的结果,再将变量值增加1并覆盖该变量原来的数值 相当于ia = ia + 1的效果
++ia 表示先让变量本身的值加1,再让变量的数值作为表达式的结果
自增减只能适用于变量,常数不可以!
/**
* 编程实现自增减运算符的使用
*/
public class SelfTest {
public static void main(String[] args) {
// 1.声明一个int类型的变量并初始化
int ia = 10;
System.out.println("ia = " + ia);
System.out.println("---------------------------------");
// 2.实现自增减运算符的使用
ia++;//表示让变量ia的值增加1并覆盖该变量原来的数值 相当于ia = ia + 1的效果
System.out.println("ia = " + ia); // 11
++ia;
System.out.println("ia = " + ia); // 12
System.out.println("---------------------------------");
System.out.println(ia++);//打印表达式的结果 12
System.out.println("ia = " + ia);//13
System.out.println(++ia);//14
System.out.println("ia = " + ia);//14
System.out.println("---------------------------------");
int ib = ia++;
System.out.println("ib = " + ib);//14
System.out.println("ia = " + ia);//15
int ic = ++ia;
System.out.println("ic = " + ic);//16
System.out.println("ia = " + ia);//16
System.out.println("---------------------------------");
System.out.println(ia++ + ++ia);//34
}
}
逻辑运算符
&& 逻辑与运算符 同真为真,一假为假
|| 逻辑或运算符 一真为真,同假为假
! 逻辑非运算符 真为假,假为真
逻辑运算符的操作数均为boolean表达式
/**
* 编程实现逻辑运算符的使用
* 逻辑运算符的操作数均为boolean表达式
*/
public class LogicTest {
public static void main(String[] args) {
// 1.声明两个boolean类型的并初始化
boolean b1 = true;
boolean b2 = false;
// 2.使用上述变量实现逻辑运算符的使用
boolean b3 = b1 && b2;
System.out.println("b3 = " + b3);//false
System.out.println(b1 && b2);//false
System.out.println(b1 || b2);//true
System.out.println(!b2);//true
int ia = 3;
int ib = 5;
// 逻辑运算符的短路特性
boolean b4 = (++ia == 3) && (++ib == 5);// 4!= 3,逻辑与运算符终止,不执行ib相关运算
System.out.println("b4 = " + b4);// false
System.out.println("ia = " + ia);// 4
System.out.println("ib = " + ib);// 5
//编程使用逻辑运算符判断三位数
System.out.println("请输入一个正整数:");
Scanner sc = new Scanner(System.in);
int num = sc.nextInt();
//System.out.println(100 <= num && num <= 999);
//使用三目运算符判断
System.out.println((100 <= num && num <= 999)?"是三位数":"不是三位数");
System.out.println("请输入两个正整数:");
Scanner sc1 = new Scanner(System.in);
int i1 = sc1.nextInt();
int i2 = sc1.nextInt();
System.out.println(i1 >= i2 ? i1 : i2);
}
}