day_03

  • ​ 位运算符

    位运算符 含义 示例
    << 左移 5<<2 = 20----》 5*2^2=20
    >> 右移 5>>1=2
    >>> 无符号右移 对于正数来说,空出来的最高位拿0补位,负数拿1补 3>>>1=1
    & 与位运算 只要出现一个位为0,结果位就位0,否则为1 6&3=2
    | 或运算 只要有一个为1,运算结果就为1 6|3=7
    ^ 异或运算 如果两个数值一样,运算结果为0, 否则为1 5^3=6
    ~ 取反运算 ~6 ------> 0110 = -7

    备注:位运算计算机底层采用的对整数进行二进制运算。

    ​ 【没有无符号左移位运算符】

    ​ 二进制在计算机中都是补码形式呈现L:<()

  • ​ 三目运算符

    ? :

格式:

​ 布尔类型表达式 ?真的结果:假的结果值

​ 数据类型 变量名 = 布尔类型表达式 ?真的结果:假的结果值

计算方式:

​ 如果布尔类型表达式结果是true,三木运算符运算的结果为紧邻?后面的值

​ 如果布尔类型表达式结果是false,三木运算符运算的结果为紧邻:后面的值

备注:当三目运算符运算参与有其他的运算(赋值运算),要求三目运算符中的?和后面的值的【数据类型保持一致】。

流程控制: 顺序 、选择、循环

顺序结构

​ 程序是从上往下进行加载,按照代码的编写顺序进行执行。

选择结构(分支结构)

if else 语句

 1.          ​        if  单支情况 

​ if语句的格式:

​ if(布尔类型表达式/布尔类型值){

​ // 语句体。。。。

​ }

​ if语句(单支)的执行流程:

​ 首先判断布尔类型表达式,看他的结果是false还是true。

​ 如果是true就执行{}里面的方法体内容。

​ 如果是false就不执行{}立案的方法体内容,程序往后加载。

  1. if else 多支情形

​ 格式:

​ if(布尔类型表达式){

​ // 语句体内容1:

​ } else{

​ // 语句体内容2:

​ }

​ if else 多支的执行流程

​ 首先判断布尔类型表达式,看他的结果是false还是true。

​ 如果是true就执行语句体内容1

​ 如果是false就执行语句体内容2

  1. if。。。。else if。。。else语句

    ​ 格式:

    ​ if(布尔类型表达式1){

    ​ //方法体内容1.。。。。

    ​ }else if(布尔类型表达式2){

    ​ //方法体内容2.。。。。

    ​ }else if(布尔类型表达式n){

    ​ //方法体内容n。。。。

    ​ }

    执行流程:

    ​ 首先判断布尔类型表达式1,看他的结果是false还是true。

    ​ 如果是true 就执行语句体内容1

    ​ 如果是false 就执行布尔类型表达式2,看他的结果是false还是true

    ​ 如果是true 就执行语句体内容2

    ​ 如果是false 就执行布尔类型表达式.。。。。。看起结果是true还是false

    ​ ...........

     							  如果以上所有的布尔类型表达式都为false,最后执行else()里面的方法体内容n+1
    
  2. if.....if.....else.......else语句 嵌套情形

    ​ 格式:

    ​ if(布尔类型表达式1){

    ​ //方法体内容1

    ​ ................

    ​ if(布尔类型表达式2){

    ​ // 方法体内容2

    ​ 。。。。。。。。。。。。。

    ​ }else{

    ​ //方法体内容3

    ​ .。。。。。。。。

    ​ }

    ​ }else{

    ​ //方法体内容4

    ​ .。。。。。。

    ​ }

    ​ 执行流程:

    ​ 首先判断布尔类型表达式1,看他的结果是false还是true。

    ​ 如果是true 就执行语句体内容1,在继续判断布尔类型表达式2,看其结果是true还是false。如果true,就执行方法体内容2

    ​ 如果false,就执行方法体内容3.。。。。。

    ​ 如果是false,就执行方法体内容4,之后加载后面的程序

switch case 语句

​ 格式:

              switch(表达式){
                      case 常量值1:
                          //  语句体内容1
                          break;
                      case 常量值2:
                          //  语句体内容1
                          break;
                          ...........
                     default:
                           //  语句体内容n
                           break;
                      }     

执行流程:

​ 首先计算出表达式中的值

​ 其次,依次和case后面的常量值作比较,一旦有对应的 值,就会执行相应的语句体内容。

​ 在执行的过程中,遇到break就会结束 switch case语句

​ 最后,如果所有的case都和表达式的值不匹配,就会执行default中的语句体内容,然后switch case语句结束,

注意:在switch语句中,表达式的数据类型,可以是byte/short/int/char/enmu(枚举)JDK1。7之后可以接收字符串类型

case穿透性

​ 在switch语句中,如果case后面的break省略,将会出现穿透现象,不会判断case的情形值,直接向后加载运行,直到遇见break结束。

循环结构

三种基本循环: for 、 while 、do while

​ 循环结构组成部分:一般可以分成4部分

  1. 初始化语句 :在循环最初开始时,需要定义一个初始化的变量,而且只会定义一次。

  2. 条件判断 (结束条件):如果条件成立满足,进入循环,如果田间不满足,则退出循环

  3. 循环体内容:重复要做的事情内容,可能包含很多条语句(事情是有规律的)

  4. 迭代语句 (步进语句):每次循环结束之后需要执行步进语句(迭代语句),对初始化的变量做步进(迭代)。

for循环语句结构

​ 格式:****

for(1.初始化语句;2.条件判断表达式;4.迭代语句){
           // 3.循环体内容



}

执行流程:

​ 执行顺序:1----》2----》3-----》4-----》2-----》3----》4。。。。直到2不满足为止。

​ 1.负责循环变量的初始化

​ 2.负责判断是否满足循环条

不满足退出循环

​ 3.负责执行具体的语句(逻辑功能)

​ 4.负责变量的迭代

Scanner类 和Random类的使用

​ API(Application Programming Interface) 应用程序编程接口,javaAPI 就是程序员的一本字典。

是JDK中提供给我们使用的类的说明文档,只需要查阅API搜索自己需要的类。

Scanner类

​ 它是一个可以解析基本数据类型和字符串的文本扫描器。主要作用就是把外部的数据录入到系统中。

   Scanner sc = new Scanner(System.in);
   // 让系统能够从外部录入一个整数   nextInt()
   int num = sc.nextInt();
   // 备注:System.in 可以实现通过键盘往系统中录入一个数据。
   // 让系统能够实现从外部录入一个浮点数(小数)  nextDouble()
   double num02 = sc.nextDouble();
   // 让系统能够实现从外部录入一个字符串数据  next()
   String str = sc.next();

While循环语句

​ 格式:

        // 1.初始化语句
       while(2.判断条件){
        // 3.循环体内容
        // 4.步进语句;
       }

​ 执行流程:

​ 执行顺序:1----》2-----》3-----》4-----》2------》3------》4------》2------》3-------》4------》.....2不满足为止

​ 1负责循环变量初始化

​ 2负责判断是否满足循环条件,不满足退出

​ 3负责执行具体语句,实现某个功能

​ 4迭代循环变量

do-while循环

​ 格式:

    //1.初始化语句
    do{
        //3.循环体内容
        //4.迭代语句
    }while(2.判断条件);
        

执行流程:

​ 执行顺序:1-----》3---->4----->2----->3------>4------>2----->3----->4----->........2不满足为止

​ 1.负责定义循环变量,并且进行初始化

​ 2.负责判断是否满足循环条件,不满足则跳出循环

​ 3.负责执行具体语句,实现某个功能

​ 4.迭代循环变量

​ 备注:无条件执行一次循环体内容,即使判断条件是不满足也依然循环一次,这样的循环时有风险的,不建议使用。

循环语句的区别

​ for和while的区别:

​ 控制语句中所涉及到的循环变量,当for循环结束后,定义的循环变量不能再被访问到,而while循环结束后依然可以被访问到。如果不能继续使用循环变量,建议使用for循环,因为for循环结束后,循环变量就会从内存中消失,能够提高内存的使用效率。

​ 在已知循环次数的情况下,建议使用for循环,当循环次数不确定时使用while循环。

跳出语句

​ break、continue两个语句

break

使用情形:终止switch语句或者循环语句

备注:离开了使用场景对于break来说没有意义

public static void main(String[] args){
    // 使用break语句
    // 跳出循环语句
    // 10以内的偶数和
    int sum = 0;
    for(int i = 0;i<=100;i++){
         // 跳出情形  i》 10
        if(i >10){
            break;
        }
        if(i % 2 == 0){
            sum += i;
        }
    }
    //跳出switch case语句
    //季节   四个季节
    String season = "春季";
    switch(season){
        case "春季":
            System.out.println("万物复苏的时候");
            break;
        case "夏季":
            System.out.println("烈日炎炎的时候");
            break;
        case "秋季":
            System.out.println("丰收的季节");
            break;   
        case "冬季":
            System.out.println("寒冷下雪的时候");
            break;    
        default:   
             System.out.println("跳出三界外,不在五行中");
            break;  
    }
    
}


continue

​ 使用情形:结束本次循环,继续下一次循环

public static void main(String[] args){
    // continue
    // 求一下100以内的偶数和   2+4+6+8+.......
    int sum = 0;
    for(int i = 1; i<=100; i++){
        //使用场景  奇数跳过去  不参数累加和
        if(i % 2 != 0){
            continue;
        }
        sun += i;
    }
    
}

扩展知识点

​ 1. 死循环

​ 概念:循环条件永远都是true,死循环是永不结束的循环。例如:while(true){}

​ 死循环一般要和跳出语句结合

  1. 循环嵌套

    ​ 概念:是指一个循环的循环体是另一个循环。比如说for循环内置了一个for循环。就是嵌套循环。

    ​ 循环的次数 = 外部循环的次数 * 内部循环的次数

    格式:
        for(1.初始化语句1; 2.判断语句1;4.迭代语句1){
            // 3.循环体内容
            for(1.初始化语句2;2.判断语句;4.迭代语句2){
             // 3.循环体内容2  
                ......
                   for(5.初始化语句;6.判断语句;8.迭代语句){
                       // 7.循环体内容2 
                   
                   }
          
            }
      
        }
        
    

    执行流程

    ​ 执行流程:1---2---3---5---6---7---8---6---7---8---》....6不满足为止(跳出循环)

    ​ ----4---2----3---5---6----7---8---6----7----8---》----6不满足为止(跳出循环)

    ​ ------>.......2不满足为止(结束整个循环)

原文地址:https://www.cnblogs.com/yangstudy/p/14003959.html