JAVA10_28学习总结(位运算符,流程控制语句)

今日笔记

1.位运算符(了解)

位运算符
    对具体数据进行计算的
        基本运算符号(0相当于false,1相当于true)
            位与 & ---> 有0则0
            位或 | ---> 有1则1
            位异或 ^ ---> 相同则0,不同则1
                一个值被位异或两次其值是它本身!
            反码 ~ ---> 对数据全部取反(包含符号位)
class OperatorDemo1{
    public static void main(String[] args){
        int a = 8 ;
        int b = 9 ;
        System.out.println("原数据a:"+a);
        System.out.println("原数据b:"+b);
        System.out.println("-----------------------------");
        //a^b赋值给了a
        a = a ^ b ;
        //a^b^b赋值给了b   此时这里b的值等于a
        b = a ^ b ;
        //a^b^a赋值给了a   完成两数交换
        a = a ^ b ;
        System.out.println("新数据a:"+a);
        System.out.println("新数据b:"+b);
    }
}

1.1位运算符中移位符号

移位符号
    数据1 >> 数据2
        数据1的补码向右移动数据2的值
            数据1最高位为1,则补齐1
            数据1最高位为0,则补齐0
                结论:数据1除以2的移动(数据2)次幂
    数据1 << 数据2
        数据1的补码向左移动数据2的值
            数据1不论最高位是什么都舍弃,在末尾补0
                结论:数据1乘以2的移动(数据2)次幂
    数据1 >>> 数据2
        数据1的补码向右移动数据2的值
            不论数据1最高位是什么,永远都用0补齐
        
class OperatorDemo1{
    public static void main(String[] args){
        int num1 = 3 ;
        int num2 = 2 ;
        //数据1 << 数据2
        int result = num1 << num2 ;
        /*
    分析:
        int 类型 3 (向左移动数据2的值--->2)(正数原反补码都一样,切记补码操作!)
            00000000 00000000 00000000 00000011
          00000000 00000000 00000000 00000011
          末尾用0补齐,最高位抹去
      (00)000000 00000000 00000000 0000001100
            大小为12       结论:数据1乘以2的移动(数据2)次幂   3*2^2=12
        */
        System.out.println("<<符号运算:"+result);
        /*
    以下同理
        */
        int result1 = num1 >> num2 ;
        int result2 = num1 >>> num2 ;
        System.out.println(">>符号运算:"+result1);
        System.out.println(">>>符号运算:"+result2);
    }
}

2.键盘录入--import Java.util.Scanner ;

首先要导包
        import java.util.Scanner ;
    调用固定格式
        Scanner 变量名 = new Scanner(System.in) ;
    输入格式
        int 变量名1 = 变量名.nextInt() ;--->前面是int类型,后面用nextInt()
        String 变量名2 = 变量名.nextLine() ;--->官方接收和输入字符串格式
        String 变量名3 = 变量名.next() ;--->也能用来写字符串格式,但不是官方的

注意 .next Line(); 与 .next(); 区别

import java.util.Scanner;
class ScannerDome{
    public static void main(String[] args){
        Scanner sc = new Scanner(System.in);
        int num1 = sc.nextInt();
        String num2 = sc.nextLine();
        System.out.println("int类型:"+num1);
        System.out.println("String类型:"+num2);
        /*
        int类型:12
        String类型:
    分析:
        因为每次输入数据都要按回车键,回车键也是一种字符串,所以被String录入了一行空行
    解决办法:
        1)在String收取数据前重新Scanner一个新的变量
        2)使用.next();非官方收取数据
        */
        System.out.println("------------------------------");
        int num3 = sc.nextInt();
        String num4 = sc.next();
        System.out.println("int类型:"+num3);
        System.out.println("String类型:"+num4);
        /*
            10
            int类型:10
            String类型:
        ------------------------------
        10
        hello
        int类型:10
        String类型:hello
        */
    }
}

3.流程控制语句

3.1顺序结构语句

顺序结构语句
    通过jvm在主方法中运行(main)
    从上往下依次运行
        通过关闭jvm的方式可以中断运行
            System.exit(0) ;

3.2选择结构语句

选择结构语句if
    结构-->1)--->单一情况判断
        if(表达式){
            ...
        }
            ... 
    结构-->2)--->两种情况判断,不是..就是..
        if(表达式){
            ...
        }else
            ...
    结构-->3)--->多种情况,反复嵌套
        if(表达式){
            ...
        }else if(表达式1){
            ...
        }else if(表达式2){
            ...
        }...
            ...
import java.util.Scanner;
class IfDemo{
    public static void main(String[] args){
        //键盘输入信息
        Scanner sc = new Scanner(System.in);
        //提示信息
        System.out.println("请输入一个数");
        int num1 = sc.nextInt();
        if(num1>10){
            System.out.println("这个数大于十");
        }else{
            System.out.println("这个数小于等于十");
        }
    }
}
import java.util.Scanner;
class IfDemo2{
    public static void main(String[] args){
        String userName = "admin" ;
        String passWord = "123456" ;
        Scanner sc = new Scanner(System.in);
        System.out.print("输入用户名:");
        String inputUserName = sc.nextLine();
        Scanner sc1 = new Scanner(System.in);
        System.out.print("输入密码:");
        String inputPassWord = sc1.nextLine();
        //equals比较重要的字符串相等比较
        if(inputUserName.equals(userName) && inputPassWord.equals(passWord)){
            System.out.println("登陆成功!");
        }else{
            System.out.println("用户名或密码错误!");
        }
    }
}
import java.util.Scanner;
class IfDemo3{
    public static void main(String[] args){
        //创建键盘录入对象
        Scanner sc = new Scanner(System.in) ;
        //提示并录入数据
        System.out.println("请您输入的学生的成绩: ") ;
        int socre = sc.nextInt() ;
        /*          
        if(socre>=90 && socre<=100){
            System.out.println("优秀") ;
        }else if(socre>=80 && socre<90){
            System.out.println("较优") ;
        }else if(socre>=70 && socre<80){
            System.out.println("良好") ;
        }else if(socre>=60 && socre<70){
            System.out.println("及格") ;
        }else{
            System.out.println("不及格") ;
        }
        */
        
        //测试程序:
        //测试正确数据:正常范围内的数据
        //测试边界数据:边界数据的是否在我们指定范围内
        //测试错误数据:超了范围,不满足,应该也要包含进去
        
        if(socre<0 || socre>100){
            System.out.println("您输入的数据有误!") ;
        }else if(socre>=90 && socre<=100){
            System.out.println("优秀") ;
        }else if(socre>=80 && socre<90){
            System.out.println("较优") ;
        }else if(socre>=70 && socre<80){
            System.out.println("良好") ;
        }else if(socre>=60 && socre<70){
            System.out.println("及格") ;
        }else{
            System.out.println("不及格") ;
        }
    }
}

你可能感兴趣的:(Java学习--一阶段,java,学习)