• Java基础(二)


    运算符和表达式

    与C语言中的运算符大致类似,以下为一些特殊情况

    1.运算符
    • 逻辑运算符的短路:因逻辑运算符的特点决定

      // && 的短路:当第一个操作数值为false时,不再去运算第二个操作数
      int x = 0, y = 0;
      if(x!= 0 && (1 / x > (x + y)){
      		System.out.println("if分支");
      	}else {
      		System.out.println("else分支");
      	}
      		
      // || 的短路:第一个操作数是true时,不运算第二个操作数
          boolean bo1 = x != 0 || x ++ > y;
      	System.out.println(x);
      	System.out.println("bo1");
      
      • 1
      • 2
      • 3
      • 4
      • 5
      • 6
      • 7
      • 8
      • 9
      • 10
      • 11
      • 12
    • ‘+’、‘-’ 可为正负号

      int x = 0, y = 10;
      int add = x + -y;
      System.out.println(add); // -10;
      
      • 1
      • 2
      • 3
    • 两种右移

      /* 
       * >>有符号右移:高位要补符号位
       * >>>无符号右移:高位不补符号位
       */
      int i = -1;
      System.out.println(i >> 1);
      System.out.println(i >>> 1);
      
      • 1
      • 2
      • 3
      • 4
      • 5
      • 6
      • 7
    2.表达式
    • 概念:符合一定语法规则的运算符和操作数的序列
    • 类型与值:
      • 类型:表达式的数据类型
      • 值:操作进行运算得到的结果
    3.类型转换
    • 数据类型按容量大小排序(隐式)

      byte→ short→ (char)→ int→long→float→ double。

      byte,short, char之间不会相互转换,他们三者在计算时首先转换为 int 类型。

    • 逆顺序的需要借助强制类型转换

    在这里插入图片描述

    三种类型

    顺序流程

    顺序流程是按照语句顺序依次执行一系列语句(或语句块)。顺序流程是最基本的控制流程。

    分支流程
    1. if…else分支
    • 基本语法:

      if ( 条件表达式 ) {
      	//条件为真时执行  
      	语句块1 
      } else {
      	//条件为假时执行
      	语句块2
      }
      
      • 1
      • 2
      • 3
      • 4
      • 5
      • 6
      • 7
      if(c == '+')
          System.out.println(a + b);
      else if(c == '-')
          System.out.println(a - b);
      else if(c == '*')
          System.out.println(a * b);
      else
          System.out.println(a / b);
      
      • 1
      • 2
      • 3
      • 4
      • 5
      • 6
      • 7
      • 8
    2. switch–case分支
    • 基本语法

      基本语法:
      switch ( 表达式 ) {
      	case constant1:
      	语句;
      	break;
      	case constant2:
      	语句;
      	break;
      	default:
      	语句;	
      	break;
      }
      
      • 1
      • 2
      • 3
      • 4
      • 5
      • 6
      • 7
      • 8
      • 9
      • 10
      • 11
      • 12
    • switch 后允许的表达式类型:String/char/byte/short/byte或枚举类型

      Scanner sc = new Scanner(System.in);
      System.out.printf("输入成绩的等级");
      String grade = sc.nextLine();
      switch(grade){
          case "A":
              System.out.println("你的成绩在90-100之间");
          case "B":
              System.out.println("你的成绩在80-90之间");
      }
      
      • 1
      • 2
      • 3
      • 4
      • 5
      • 6
      • 7
      • 8
      • 9
    循环流程

    循环语句是根据条件,要求程序反复执行某些操作。

    1. for 循环
    • 当循环变量在指定范围内变化时,重复执行循环体,直到循环变量超出了指定的范围时退出。

    • 基本语法

      for( 初始化表达式; 终止条件表达式; 更新表达式 ) {
      循环体
       }
      
      • 1
      • 2
      • 3
    • 注意:初始化表达式中的变量必须声明并赋值。终止条件表达式的值必须为布尔值。

      for(int i = 15; i >= 10; i --) {
          for(int k = 0; k < 15 - i; k ++){
              System.out.print("          ");
          }
          for(int j = 10; j <= i; j ++){
              System.out.printf("%d*%d=%d ", i, j, i * j);
          }
          System.out.println();
      }
      
      • 1
      • 2
      • 3
      • 4
      • 5
      • 6
      • 7
      • 8
      • 9
    2. while循环
    • 当条件满足时进入,重复执行循环体,直到条件不满足时退出。

    • 基本语法

      while( 循环条件表达式 ) {
      	循环体
      }
      
      • 1
      • 2
      • 3
      while(n != 0){
          System.out.println(n);
          n --;
      }
      
      • 1
      • 2
      • 3
      • 4
    3. do…while循环
    • 无条件进入,执行一次循环体后判断是否满足条件,当条件满足时重复执行循环体,直到条件不满足时退出

    • 基本语法:

      do {
       循环体
       } while ( 循环条件表达式 );
      
      
      • 1
      • 2
      • 3
      • 4
       do {
           s += n * ( n + 1 ) ;
           n = n + 1 ;
       } while ( s < totalNum ) ;
      
      • 1
      • 2
      • 3
      • 4
    4.加强 for 循环
    • Java提供了一个更为简洁的循环语句,用于数组或者集合的遍历。

    • 基本语法

      for ( 类型 变量名: 数组或集合 ) {
      	循环体
      }
      
      • 1
      • 2
      • 3
       int[] nums = {10, 20, 30, 40, 50};
      for(int i : nums){
          System.out.println(i);
      }
      
      • 1
      • 2
      • 3
      • 4
  • 相关阅读:
    Spring5应用之事务处理
    SpringMVC之JSON数据返回及异常处理机制
    java-php-python-ssm树木交易平台计算机毕业设计
    YOLOv5 加入SE注意力机制
    c++高级篇(一) —— 初识Linux下的进程控制
    栈和队列2——队列的实现
    m基于MATLAB Simulink的16QAM调制解调系统仿真
    Elasticsearch ES数据迁移方法及注意事项
    限制相关算法
    栈(Java)
  • 原文地址:https://blog.csdn.net/m0_60610120/article/details/126837605