Java-运算符-键盘录入数据-流程控制语句-控制跳转语句

运算符

逻辑运算符

逻辑运算符
&(并且) , |(或者) , !(非) , ^(异或) , &&(短路与) , ||(短路或)
注意事项:
a:逻辑运算符一般用于连接boolean类型的表达式或者值。
b:表达式:就是用运算符把常量或者变量连接起来的符合java语法的式子。
算术表达式:a + b
关系表达式:a == b
结论:
&逻辑与:有false则false。
|逻辑或:有true则true。
^逻辑异或:相同为false,不同为true。
!逻辑非:非false则true,非true则false。
特点:偶数个不改变本身。

&&和&的区别
a:最终结果一样。
b:&&具有短路效果。左边是false,右边不执行,同理||和|的区别,开发中常用 &&,||,!

public class OperatorDemo {
    public static void main(String[] args) {
          //   &(并且) , |(或者), 和 &&(短路与) , ||(短路或) 的区别
    
        int a=1;
        int b=2;

        boolean flag=a==1&(b++)>2;

        System.out.println(flag);//false
        System.out.println(b);//3
              //  flag = a > 1 & (b++) > 2;

             //& 两端都会去运算
            //&& 左端为false 右端不运算了  左端为true,那右端必须运算
               flag=a>1&&(b++) > 2;
        System.out.println(flag);//false
        System.out.println(b);//4
	int num1=10;
        int num2=20;

        // | 两端都会运算
        // || 左端为true,右端不运算,左端为false,右端就得运算
        boolean f=num1==10|++num2>20;

                f= num1 <= 10 || ++num2 > 20;
        System.out.println(f);//true
        System.out.println(num2);//
    }
}

位运算符

位运算符有哪些
&(与),|(或),^(异或) , ~(按位取反) , <<(左移) ,>>(右移) ,>>>(无符号右移)
注意事项:位运算是直接对二进制补码进行运算。
结论:
&:有0则0
|:有1则1
^:相同则0,不同则1
~:按位取反 0变1 1变0

public class MyDemo {
     public static void main(String[] args) {
            //  &(与),|(或),^(异或), ~(按位取反) , <<(左移) ,>>(右移) ,>>>(无符号右移)
        //       注意事项:位运算是直接对二进制补码进行运算。
        byte a = 3; //
        byte b = 4; //
        // 0  0000011  补码
        // 0  0000101  补码
        //   --------------------------------------------
        // 0  0000001

        System.out.println(3 & 5);
        System.out.println(a | b);
        System.out.println(~3);
        System.out.println(3 >> 2); //把3右移2位   00 0  00000
        System.out.println(3 >>> 2); //把3右移2位   00 0  00000

        System.out.println(-3 >> 2); //把3右移2位   00 0  00000
        System.out.println(-3 >>> 2); //把3右移2位   00 0  00000
        System.out.println(3 << 2);
        //00001100
	// 结论:一个数 被另一个数位异或两次该数不变
        System.out.println(2 ^ 3 ^ 3);

        System.out.println(2 ^ 5 ^ 2);
        System.out.println(10 ^ 10);

       // 结论 :<< :把 << 左边的数据乘以2的移动次幂 例如 10 << 3 结果 10 * 2 ^ 3 = 80
              //>> :把 >> 左边的数据除以2的移动次幂 例如 40 >> 3 结果 40 / 2 ^ 3 = 5*/
        System.out.println(2 * 4);
        System.out.println(2 << 2);
    }

}

三元运算符

A:三元(三目)运算符的格式
(关系表达式) ? 表达式1 : 表达式2;
int a=(10>20)?30:50; a=50
B:三元运算符的执行流程
计算关系表达式的值,如果为true, 运算后的结果是表达式1;
如果为false,运算后的结果是表达式2;
C:案例演示

public class MyDemo2 {
    public static void main(String[] args) {
         int a=100;
        int b=200;
	int r=a>b?a:b;
System.out.println("最大值是:"+r);
 int str=a==b?"相等":"不相等";
    System.out.println(str);
 }
}

键盘录入数据

实现键盘录入
a:导包
格式:
import java.util.Scanner;
位置:
在class上面。
b:创建键盘录入对象
格式:
Scanner sc = new Scanner(System.in);
c:通过对象获取数据
格式:
int x = sc.nextInt();

键盘录入:键盘录入两个数据,并对这两个数据求和,输出其结果
public class ScannerDemo {
    public static void main(String[] args) {
        //Java给我们提供了一个类 Scanner
        //Scanner 可以从键盘录入数据
        //1.导入包
        //2.创建该类对象
       
        Scanner sc = new Scanner(System.in);
    System.out.println("请输入第一个整数");
        //获取用户从键盘上输入的数据
         int num1= sc.nextInt();
        System.out.println("请输入第二个整数");
        int num2 = sc.nextInt();

        //获取两个数的最大值
        int max=num1>=num2?num1:num2;

        System.out.println("最大值是:"+max);

    }
}

流程控制语句

顺序结构

是程序中最简单最基本的流程控制,没有特定的语法结构,按照代码的先后顺序,依次执行,程序中大多数的代码都
是这样执行的,总的来说:写在前面的先执行,写在后面的后执行.

选择结构

if语句几种格式

if(比较表达式或者是boolean类型的值) {
语句体;
}

public class IFDemo {
    public static void main(String[] args) {
         int a=3;
        int b=4;
        if(a<b){ //(表达式)括号里面的结果是false {}大括号里面的代码就不执行
            System.out.println("这条语句执行了");
        }
     }
}

if(比较表达式) {
语句体1;
}else {
语句体2;
}

public class IFDemo2 {
    public static void main(String[] args) {
               if(3<4){
            System.out.println("真");
        }else{
            System.out.println("假");
        }
    }
}

if(比较表达式1) {
语句体1;
}else if(比较表达式2) {
语句体2;
}else if(比较表达式3) {
语句体3;
}

else {
语句体n+1;
}

public class MyDemo {
    public static void main(String[] args) {
       
        Scanner scanner = new Scanner(System.in);
        System.out.println("请输入你的成绩 百分制");
        double socre = scanner.nextDouble();
        //对成绩进行范围的判断
        if (socre < 60 && socre >= 0) {
            System.out.println("成绩不及格");
        } else if (socre >= 60 && socre < 75) {
            System.out.println("差");
        } else if (socre >= 75 && socre < 85) {
            System.out.println("中");
        } else if (socre >= 85 && socre < 95) {
            System.out.println("良好");
        } else if (socre >= 95 && socre < 100) {
            System.out.println("优秀");
        } else if (socre == 100) {
            System.out.println("满分");
        } else {
            System.out.println("成绩不合法");
        }
    }
}

switch语句的格式

switch(表达式){
case 值1:
语句体1;
break;
case 值2:
语句体2;
break;
case 值3:
语句体3;
break;

default:
语句体n+1;
break;
}

public class SwitchDemo {
    public static void main(String[] args) {
        short num = 10;
      
        //switch (num) 小括号里面都支持哪些数据类型:
        // byte short int char
      
        //case 的值只能是常量
        //多个case项的数据类型要一致
        //break 结束 switch 语句 可以不要,不要会发生一种现象,这种现象叫做case穿透

        //default:项 可以写,也可以不要 位置前后没有关系

        switch (num) {

            case 10:
                System.out.println("10这个项匹配上了");

                break;
            case 20:
                System.out.println("20这个项匹配上了");


                break;
            case 30:
                System.out.println("30这个项匹配上了");

                break;
            case 40:
                System.out.println("40这个项匹配上了");

                break;
            case 50:
                System.out.println("50这个项匹配上了");

                break;
            case 100:
                System.out.println("100这个项匹配上了");

                break;

            default:
                System.out.println("当所有的case项都没有匹配上时,就会执行默认项");
                break;


        }

    }
}

选择结构if语句和switch语句的区别
if语句使用场景
针对结果是boolean类型的判断
针对一个范围的判断
针对几个常量值的判断
switch语句使用场景:
针对几个常量值的判断

循环语句

循环结构for语句的格式:
for(初始化表达式语句;判断条件语句;控制条件语句) {
循环体语句;
}

public class ForDemo {
    public static void main(String[] args) {
       i=0;i<10;i++){
      
 System.out.println("祖国生日快乐!!!");

        }
    }
}

循环结构while语句的格式:
初始化条件语句;
while(判断条件语句) {
循环体语句;
控制条件语句;
}

public class WhileDemo {
    public static void main(String[] args) {
      
        int i=1; //循环的初始值
        while (i<=10){ //条件为true 循环继续,为false 循环结束
            System.out.println("你好!");
            i++; //控制循环的语句不要忘了
        }
  }

循环结构do…while语句的格式:
初始化条件语句;
do {
循环体语句;
控制条件语句;
}while(判断条件语句);

public class WhileDemo2 {
    public static void main(String[] args) {
        //先执行do里面的代码一次,后去判断循环条件是否成立,如果成立,继续循环,不成立循环终止
        int i=1;
        do{
            System.out.println("先执行一次");
            i++;
        }while (i<=10);
    }

循环结构三种循环语句的区别
(1):do…while循环至少执行一次循环体。
而for,while循环必须先判断条件是否成立,然后决定是否执行循环体语句。
(2):A: 如果你想在循环结束后,继续使用控制条件的那个变量,用while循环,否则用for循环。不知道用for循环。
因为变量及早的从内存中消失,可以提高内存的使用效率。
B:建议优先考虑for循环,然后是while循环 ,最后是do…while循环

控制跳转语句

break 中断语句

break的使用场景
(1):在选择结构switch语句中
(2):在循环语句中
注意:离开使用场景的存在是没有意义的
作用
a:退出单层循环
b:退出多层循环(几乎不使用)
要想实现这个效果,就必须知道一个东西;带标签的语句;
格式:标签名:语句

public class ForDemo {
    public static void main(String[] args) {
        for (int i = 1; i <= 10; i++) {
            //循环到5的时候让循环终止调用
            System.out.println(i);
            if (i == 5) {
                break; //终止循环
            }
        }
     
    }
}

continue 继续语句

continue的使用场景
(1):在循环语句中
(2):离开使用场景的存在是没有意义的
作用
a:跳出一次循环,执行下一步操作

public class ForDemo2 {
    public static void main(String[] args) {
        for (int i = 1; i <= 10; i++) {
            if(i%2==1){
                continue; //跳过一次循环,继续下一次循环
            }
            System.out.println(i);
        }
    }
}

return 返回语句

作用
return 就是退出一个方法。
跳转到上层调用的方法。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值