1:位运算符

  • 位运算符2<<3 2 * 8 == 2 * 2^3
  • <<一个整数向左移动几位就乘以2的几次幂
  • >>一个整数向右移动几位就除以2的几次幂,高位是0就补0,高位是1就补1
  • >>>无符号右移无论最高位的符号位是0还是1,用无符号右移后高位符号位都是补0

2:三元运算符

  • 格式 :(条件表达式)?表达式1:表达式2;
  • 如果条件为true,运算后的结果是表达式1;
  • 如果条件为false,运算后的结果是表达式2;
  • 条件运算符运算完之后一定有一个结果
int x,y,z;
x = 5;
y = 10;
z = x > y ? x : y;
  • 表达式
  • 运算符的优先级。

3:程序运行流程&顺序结构

  • 顺序结构
  • 判断结构
  • 选择结构
  • 循环结构

4:if语句

  • 三种格式:
  • 第一种:
if(条件表达式){
    执行语句;
}
System.out.println();

举例:
int age = 17;
if (age >= 18)
   System.out.println("可以浏览本网站");

System.out.println("完了");
  • 第二种:
if(条件表达式){  
    执行语句;       
}else{          
    执行语句;   
}

举例:
int x = 1;
if (x == 1){
    System.out.println("男厕所欢迎您");
}else {
    System.out.println("女厕所欢迎您");
}

if else 与三元运算符的区别
  • 第三种:
if(条件表达式){
       执行语句;
}else if (条件表达式){
      执行语句;
}else{
      执行语句;
}

举例:
int x = 1;
if (x == 1){
    System.out.println("男厕所欢迎您");
}else if(x == 0){
    System.out.println("女厕所欢迎您");
}else {
    System.out.println("无法识别您的性别");
}

5:if语句嵌套

int x = 2, y = 1;
    if(x==1){
        if(y==1){
            System.out.println("a");
        }else{
            System.out.println("b");
        }
    }else{
        if(y==1){
            System.out.println("c");
        }else{
            System.out.println("d");
        }
    }

6:switch

  • 格式:
int x = 10;
switch (表达式){//byte,short,int,char,String 枚举

case 表达式里对应的值:
    执行语句;
break;
case 表达式里对应的值:
    执行语句;
break;
......
default:
    执行语句;
break;//最后一句的break可写可不写,因为程序已经执行到了末尾
}
  • 案例:
String name = "张三";
String gender = "先生";
switch (gender){
case "先生":
    System.out.println(name + "是一位" + gender + "喜欢吃饭睡觉打dota");
break;
case "女士":
    System.out.println(name + "是一位" + gender + "逛街购物美容");
break;
default:
    System.out.println(name + "是一位" + gender + "打雌性激素保持美貌容颜");

}
  • switch结束的两种情况
  • 1,当程序执行过程中遇到了break
  • 2,当程序执行到了末尾处
  • switch语句需要注意的两个细节
  • 1,当switch表达式的值与其中一个case匹配的时候,这个case里没有写break;语句,那么程序会继续执行下个case里的执行语句,不会再对case值进行判断,应用于当几个case里的值所要执行的语句都一样的时候,我们可以不写break
例如:我们做一年有四季的例子:
    int month = 4;
    switch (month){
    case 3:
    case 4:
    case 5:
        System.out.println(month+"月是春季");
    break;
    case 6:
    case 7:
    case 8:
        System.out.println(month+"月是夏季");
    break;
    case 9:
    case 10:
    case 11:
        System.out.println(month+"月是秋季");
    break;
    case 12:
    case 1:
    case 2:
        System.out.println(month+"月是冬季");
    break;
    default:
        System.out.println(month+"月没有这样的月份")

    }//上述例子就是三个case里面的值输出都一样的,所以我们省略了break;这样会少写几行代码,提高效率

* 2,当我们把 default 不是写在最后,default 里面还没有写break的是时候,switch里的表达式与各个case里的值都不匹配的时候,上面两个条件同时满足的话,程序在default里执行完了还会再去执行case里的语句
例如:
    int x = 3;
    switch (x){

    case 4:
        System.out.print("a");
    break;
    default:
        System.out.print("b");//当程序执行到了default但是他没有break,下面的case值不再判断,程序继续执行
    case 5:
        System.out.print("c");
    case 6:
        System.out.print("d");
    break;//遇到break,程序跳出
    case 7:
        System.out.print("e");
    }

7:while

  • while循环
格式:
while (条件表达式){
    循环体;
}

例如:
int x = 3;
while (x<6){
    System.out.println("x="+x);//循环体
    x++;//用x自增来控制循环次数
}
  • do while 循环
格式:
do{
    循环体;
    控制循环次数
}
while (条件表达式);
例如:
int x = 3;
do{
    System.out.println("x="+x);//循环体
    x++;//用x自增来控制循环次数
}
while (x<6);
  • while和do while的区别:
  • dowhile语句会先执行循环体,再去判断条件,也就是说无论条件是否满足他都至少要执行一次循环体,先执行,再判断
  • while 先判断条件,只要条件不满足就不在执行循环体了,先判断,再执行.