小白学java第3天

1. 运算符

  • 概念

    • 对变量和常量进行操作的符号
  • 分类

    • 算数运算符:+ - * / ++ –
    • 赋值运算符:= += -= *= /=
    • 关系运算符:> < == !=
    • 逻辑运算符:|| && ^
    • 位运算符:>> <<
    • 字符串连接符:+
    • 三目运算符:?:
  • 算数运算符

    public class Demo01_Operator {
    	public static void main(String[] args) {
    		int num1 = 4;
    		int num2 = 5;
    		System.out.println(num1 + num2);
    		System.out.println(num1 - num2);
    		System.out.println(num1 * num2);
    		System.out.println(num1 / num2);
    		System.out.println(num1 % num2);
    	}	
    }
    

2. 算数运算符之++和–

  • 代码实现

    public class Demo02_Operator {
    	public static void main(String[] args) {
    		int num1 = 4;
    		int num3 = num1++;
    		System.out.println(num1);//5
    		System.out.println(num3);//7
    		
    		int num2 = 5;
    		int num4 = ++num2;
    		System.out.println(num2);//6
    		System.out.println(num4);//6
    		
            int num5 = 4;
    		int num6 = num5--;
    		System.out.println(num5);//3
    		System.out.println(num6);//4
    		
    		int num7 = 5;
    		int num8 = --num7;
    		System.out.println(num7);//4
    		System.out.println(num8);//4
    	}	
    }
    
  • 总结

    • 不管++放在变量的前面还是后面,变量都会+1
    • ++如果放在变量的后面,则整体等于变量的原值
    • ++如果放在变量的前面,则整体等于变量的原值+1
    • –同理

3. 算数运算符++和–的练习

  • 代码

    public class Demo03_Operator {
    	public static void main(String[] args) {
    		int a = 10;
    		int b = 10;
    		int c = 10;
    		a = b--;
    		b = c++;
    		c = ++a;
    		b = --c;
    		a = c++;
    		c = ++a;
    		System.out.println(a);//11
    		System.out.println(b);//10
    		System.out.println(c);//11
    	}	
    }
    
    byte a = 1;
    a++;
    a = a + 1;//错误 a+1为int型,不能用一个byte型去存一个int型 要强转
    

4. 赋值运算符

  • 分类

    • 基本赋值运算 =
    • 高级赋值运算 += -= /= *=
  • 代码

    public class Demo04_Operator {
    	public static void main(String[] args) {
    		int num1 = 1;
    		int num2 = 1;
    		num1 += num2;
    		System.out.println(num1);
    		
    		byte num3 = 1;
    		num3 += 1; //跟num3++一样 底层有强转
    		System.out.println(num3);
    	}	
    }
    

5. 关系运算符

  • 分类

    • == != > >= < <=
  • 代码

    public class Demo05_Operator {
    	public static void main(String[] args) {
    		int num1 = 1;
    		int num2 = 1;
    		double num3 = 1.0;
    		short num4 = 5;
    		float num5 = 5.0f;
    		System.out.println(num1 > num2); //f
    		System.out.println(num1 == num2);//t
    		System.out.println(num1 < num2); //f
    		System.out.println(num1 == num3);//t
    		System.out.println(num4 == num5);//t
    	}	
    }
    

6. 位运算符

  • 分类

    • ^ >> <<
  • 概述

    • ^ 异或 相同取0,不同取1

    • << 左移 向左移 右边补零

    • 右移 向右移 左边补零

      public class Demo06_Operator {
      	public static void main(String[] args) {
      		int a = 5;
      		int b = 3;
      		System.out.println(a >> b);//0
      		System.out.println(a << b);//40
      		System.out.println(a ^ b); //6
      	}	
      }
      

7. 逻辑运算符

  • 分类

    • &
      • 一个为假,全为假
    • |
      • 一个为真,全为真
      • 非真即假 非假及真
    public class Demo07_Operator {
    	public static void main(String[] args) {
    		boolean a = true;
    		boolean b = false;
    		System.out.println(a & b);
    		System.out.println(a | b);
    		System.out.println(!b);
    		System.out.println(!a);
    	}	
    }
    

8. 运算符&和&& |和||的区别

  • & 位与 && 短路与,他们执行的结果是一样的

  • & 不管&左边是真还是假,右边一定执行

  • && 如果左边为假,则右边不执行

    public class Demo08_Operator {
    	public static void main(String[] args) {
    		int num1 = 1;
    		int num2 = 1;
    		boolean flag1 = num1 == 0 & num2++ == 1;
    		System.out.println(flag1);//f
    		System.out.println(num1);//1
    		System.out.println(num2);//2
    		
             num1 = 1;
    		num2 = 1;
    		boolean flag2 = num1 == 0 && num2++ == 1;
    		System.out.println(flag2);//f
    		System.out.println(num1);//1
    		System.out.println(num2);//1
    	}	
    }
    
  • & 或与 && 短路或,他们执行的结果是一样的

  • & 不管&左边是真还是假,右边一定执行

  • && 如果左边为真,则右边不执行

    public class Demo08_Operator {
    	public static void main(String[] args) {
    		int num1 = 1;
    		int num2 = 1;
    		
    		boolean flag3 = num1 == 1 | num2++ == 1;
    		System.out.println(flag3);//t
    		System.out.println(num1);//1
    		System.out.println(num2);//2
            
             num1 = 1;
    		num2 = 1;
    		boolean flag4 = num1 == 1 || num2++ == 1;
    		System.out.println(flag4);//t
    		System.out.println(num1);//1
    		System.out.println(num2);//1
    	}	
    }
    

9.三元运算符

  • 语法

    条件表达式 ? 表达式1 : 表达式2;
    
    • 如果条件表达式为真,则输出表达式1的值

    • 如果条件表达式为假,则输出表达式2的值

    • 运算结果是一个值,可以用变量接收

      /**
      求最大值
      */
      public class Demo09_Operator {
      	public static void main(String[] args) {
      		int num1 = 5;
      		int num2 = 1;
      		int max = num1 > num2 ? num1 : num2;
      		System.out.println("max:" + max);
      		
      	}	
      }
      

10. 练习 两只跳跳虎

  • 需求

    • 公园里有两只跳跳虎,一只200斤,一只180斤,问他们体重是否相等
      public class Demo10_Operator {
      	public static void main(String[] args) {
      		int tiger1 = 200;
      		int tiger2 = 180;
      		boolean isEquals = tiger1 == tiger2;
      		System.out.println("是否相等:" + isEquals);
      		
      		String msg = tiger1 == tiger2 ? "相等" : "不相等";
      		System.out.println(msg);
      	}	
      }
      

11. 练习 三个和尚

  • 需求

    • 有三个和尚,分别高为150 165 210, 输出最高的那一个

      public class Demo10_Operator {
      	public static void main(String[] args) {
      		int monk1 = 150;
      		int monk2 = 165;
      		int monk3 = 210;
      		int max = monk1 > monk2 ? monk1 : monk2;
      		max = max > monk3 ? max : monk3;
      		System.out.println("最高的和尚的身高是" + max);//210
      		
      		int max1 = (monk1 > monk2 ? monk1 : monk2) > monk3 ? (monk1 > monk2 ? monk1 : monk2) : monk3;
      		System.out.println("最高的和尚的身高是" + max1);//210
      	}	
      }
      

12. Java表达式

  • 概述
    • 由变量,常量,运算符组的式子
  • 赋值表达式
  • 算数表达式
  • 逻辑表达式
  • 比较表达式
  • 三元表达式

13. 键盘输入

  • 概述

    • 在程序的运行过程中添加键盘录入,提高交互性,增强用户体验
  • 步骤

    • 导包

    • 创建对象

    • 提示输入

    • 开始输入

    • 打印输出

      import java.util.Scanner;
      public class Demo13_Expression {
      	public static void main(String[] args) {
      		Scanner input = new Scanner(System.in);
      		System.out.println("请输入a的值");
      		int a = input.nextInt();
      		System.out.println("a:" + a);
      		//input.close();
      	}
      }
      
      

14. 两只跳跳虎(加强版)

//键盘输入两个跳跳虎的体重,比较是否相等
import java.util.Scanner;
public class Demo15_Expression {
	public static void main(String[] args) {
		Scanner input =new Scanner(System.in);
		System.out.println("请输入两只跳跳虎的体重");
		int tiger1 = input.nextInt();
		int tiger2 = input.nextInt();
		String msg = tiger1 == tiger2 ? "两只跳跳虎的体重相等" : "两只跳跳虎的体重不相等";
		System.out.println(msg);
	}
	
}

15.三个和尚(加强版)

//键盘输入3个和尚的身高, 打印最矮的那个和尚的身高
import java.util.Scanner;
public class Demo16_Expression {
	public static void main(String[] args) {
		Scanner input =new Scanner(System.in);
		System.out.println("请输入第一个和尚的身高");
		int monk1 = input.nextInt();
		System.out.println("请输入第二个和尚的身高");
		int monk2 = input.nextInt();
		System.out.println("请输入第三个和尚的身高");
		int monk3 = input.nextInt();
		
		int min = monk1 <monk2 ? monk1 : monk2 <monk3 ? monk1 <monk2 ? monk1 : monk2 : monk3; 
		System.out.println("最矮的和尚的身高为");
		System.out.println(min);
	}
	
}

16. 流程控制语句

  • 概述
    • 可以控制程序的执行流程
  • 分类
    • 顺序结构
    • 选择结构
    • 循环结构

17. 选择结构之if单分支

  • 选择结构语句

    • if
    • switch
  • if语句

    • 单分支
    • 双分支
    • 多分支
  • if单分支

    public class Demo17_If {
    	public static void main(String[] args) {
    		boolean flag = true;
    		if (flag) {
    			System.out.println("if语句体");
    		}
    		System.out.println("我执行了");
    	}
    }
    
    

18. 单分支if练习

  • 需求s

    • 输入年龄,如果年龄大于30岁 打印老邱 否则 打印邱

      import java.util.Scanner
      public class Demo18_If {
      	public static void main(String[] args) {
      		Scanner input = new Scanner(System.in);
      		System.out.println("请输入年龄");
      		int age = input.nextInt();
      		String name = "邱";
      		if(age > 30) {
      			name = "老" + name;
      		}
      		System.out.println("你好" + name);
      	}
      }
      

19. 双分支if语句

  • 语法

    if(flag){
    	表达式1;
    }else{
    	表达式2;
    }
    
  • 实现

    public class Demo19_If {
    	public static void main(String[] args) {
    		boolean flag = true;
    		if (flag) {
    			System.out.println("我爱java");
    		}else {
    			System.out.println("java使我快乐");
    		}
    		System.out.println("java天下第一");
    	}
    }
    
    

20. if双分支练习

//比较大小
public class Demo20_If {
	public static void main(String[] args) {
		int a = 15;
		int b = 20;
		int max = 0;
		if (a > b) {
			max = a;
		}else {
			max = b;
		}
		System.out.println(max);
	}
}
//输入年龄,如果大于30,输出老邱,否则,输出小邱
public class Demo21_If {
	public static void main(String[] args) {
		String name = "邱";
		Scanner input = new Scanner(System.in);
		int age = input.nextInt();
		if (age > 30) {
			System.out.println("老" + name);;
		}else {
			System.out.println("小" + name);;
		}
	}
}
//输入一个数 判断是偶数还是奇数
public class Demo22_If {
	public static void main(String[] args) {
		Scanner input = new Scanner(System.in);
		int num = input.nextInt();
		if (num % 2 == 0) {
			System.out.println("该数是偶数" );;
		}else {
			System.out.println("该数是奇数");;
		}
	}
}

思维导图

思维导图

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

ijava'pdax

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

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

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

打赏作者

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

抵扣说明:

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

余额充值