字符运算
字符和数字运算本质上来说是数字运算(字符可以通过ASCII码表转换成对应数字,大小写分别代表不同数字)
public class operatorDemo6 {
//这段代码的功能是将大写字母 'A' 转换为小写字母 'a' 并输出。
//具体过程:
//1. 定义字符变量 c 赋值为 'A'
//2. 将 'A' 的 ASCII 码值加 32(大小写字母的 ASCII 差值),再//强制转换回 char 类型得到 'a'
//3. 输出结果:a
public static void main(String[] args){
char c = 'A' ;
char cc = (char) ( c + 32 ) ;
System.out.println( cc ) ;
}
字符串运算
字符串运算只有 + 操作,任意数据 + 字符串 都是拼接操作,产生一个新的字符串
例如: 10 + 8 + “岁” = “18岁”
自增自减运算符
++ 变量的值加1
-- 变量的值减一
赋值运算符
a+=b a=a+b
a-=b a=a-b
a*=b a=a*b
a/=b a=a/b
a%=b a=a%b
a=b a=b
关系运算符
== 等于
!= 不等于
大于 成立为true
= 大于等于 不成立为false
< 小于
<= 小于等于
最后的结果是一个boolean类型的结果
// 判断身高
public static void main(String[] args) {
Scanner sr = new Scanner(System.in);
System.out.println( " 请输入您的身高 " );
double myHeight = sr.nextDouble();
System.out.println( " 请输入您好基友的身高 " );
double friendHeight = sr.nextDouble();
boolean result = myHeight >= friendHeight ;
System.out.println(result);
}
// 判断一个三位数之和是否能被3整除
public static void main(String[] args) {
Scanner sr = new Scanner(System.in);
System.out.println( " 请输入一个三位数 " );
int num = sr.nextInt();
// System.out.println(num%3 == 0);
int ge = num%10;
int shi = num/10%10;
int bai = num/100%10;
int sum = ge + shi + bai ;
boolean result = (sum % 3 == 0);
System.out.println(result);
}
逻辑运算符
& 与(而且) 条件同时成立
| 或(或者) 条件成立其中之一
! 非(取反) 取反
最后结果是一个boolean类型的结果
// 逻辑运算符 &
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.println( " 请输入一个整数 " );
int num = sc.nextInt();
boolean result = num>1 & num<10;
System.out.println(result);
}
// 判断一个数是否在1-10之间
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.println( " 请输入一个整数 " );
int num = sc.nextInt();
boolean result = num<=1 | num>=10 ;
System.out.println(result);
}
短路逻辑运算符
&& 左边表达式为false,右边不用判断
|| 左边表达式为true,右边不用判断
!
作用:提高效率
// 判断一个四位数是否是回文数
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.println( " 请输入一个四位整数 " );
int num = sc.nextInt();
int ge = num%10;
int shi = num/10%10;
int bai = num/100%10;
int qian = num/1000%10;
boolean result = ge==qian && shi==bai ;
System.out.println(result);
}
// 判断一个数是否是7的倍数或者个位是7或者十位是7
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.println( " 请输入一个两位数整数 " );
int num = sc.nextInt();
int ge = num%10;
int shi = num/10%10;
boolean result = ge==7 || shi==7 || num%7==0;
System.out.println(result);
}
三元运算符
格式: 关系表达式?表达式1:表达式2;
规则:先计算关系表达式,如果成立则是表达式1,不成立则是表达式2。
// 三元运算符
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.println( " 请输入一个整数 " );
int num1 = sc.nextInt();
System.out.println( " 请输入另一个整数 " );
int num2 = sc.nextInt();
int result = num1 > num2 ? num1 : num2 ;
System.out.println(result);
}
运算符优先级
小括号大于所有
判断语句
If语句格式:if(关系表达式){
语句体
}
应用场景:只有满足对应条件,才能执行相应的代码。
使用细节:1左花括号写在第一行末尾
2语句体只有一句,花括号可以不写
3关系表达式中对布尔变量的判断直接写即可例如if(b){}
4小括号后面不能有分号
public static void main(String[] args) {
// 判断体温
Scanner sc = new Scanner(System.in);
System.out.println( " 请输入您的体温 " );
double bodyTemperature = sc.nextInt();
if(bodyTemperature >= 38){
System.out.println( " 体温过高 " );
}
}
/*模拟游戏角色的血量管理系统
* 接收用户输入的伤害值和恢复值,计算并显示剩余血量
* 血量范围限制在1-200之间
*/
public static void main(String[] args) {
int hp = 200 ;
System.out.println( " 请输入受到的伤害 " );
Scanner sc = new Scanner(System.in);
int hurt = sc.nextInt();
hp = hp - hurt;
// 确保血量不低于最小值1
if(hp<1){
hp = 1;
}
System.out.println( " 还剩血量为: " + hp);
System.out.println( " 请输入恢复的血量 " );
int add = sc.nextInt();
hp = hp + add ;
// 确保血量不超过最大值200
if(hp>200){
hp = 200;
}
System.out.println( " 还剩血量为 " + hp);
}