zoukankan      html  css  js  c++  java
  • java 基础学习 运算符、Scanner类、if语句小节

    运算符特点:所有的运算符肯定会有一个结果进行返回

    1.算术运算符
    ++:使自身的值+1
    单独使用:前++和后++的结果是一样的
    参与运算:
    前++:先使自身的值+1,然后再参与运算
    后++:先参与运算,然后再使自身的值+1
    --:使自身的值-1
    单独使用:前--和后--的结果是一样的
    参与运算:
    前--:先使自身的值-1,然后再参与运算
    后--:先参与运算,然后使自身的值-1
    /:当除数和被除数都是整数时,所得的结果也是整数。如果想要结果有小数,那么必须让除数或者被除数乘以1.0f
    %:取的余数
    a%b的取值范围:0-(b-1)
    2.赋值运算符
    =:把右边的值赋值给左边的变量
    扩展赋值运算符:隐含了数据类型强制转换
    a += b -> a = (a的数据类型)(a+b);
    ...
    3.关系运算符(比较运算符)
    它的结果肯定是boolean类型的

    ==:是否等于的意思
    !=:是否不等于的意思
    instanceof:判断指定的值或者变量是否是指定的类型,后面会用到

    4.逻辑运算符
    它的结果肯定是boolean类型的

    &和&&:结果都是一样的,有false则false,无false则true;常用的是双与,具有短路效果
    |和||:结果都是一样的,有true则true,无true则false;常永宁的是双或,具有短路效果
    ^:相同false,不同true
    !:非真即假,非假即真;奇数倍的时候结果是相反值,偶数倍的时候结果是它本身

    如果想要连接区间,应该使用与和或

    5.位运算符
    位运算符都是针对补码进行的

    左移位运算符:针对整数的补码向左边移动指定的位数,最高位直接丢弃,右边补0
    右移位运算符:针对整数的补码向右边移动指定的位数,最高位是0就补0,是1就补1,右边移除的位数直接丢弃
    左移和右移之后的值都是转换成原码之后的十进制

    针对正整数左移或者右移几位,相当于乘以或者除以2的几次方

    异或:将两个整数的补码二进制进行一一对应的异或,相同取0,不同取1。然后将补码转换成原码然后再转换成十进制
    异或的规律:一个数值异或另外一个数值两次,结果是它本身

    6.三目运算符
    关系表达式?表达式1:表达式2;
    执行流程:
    计算关系表达式的值
    如果值是true的话,就执行表达式1
    如果值是false的话,就执行表达式2
    7.Scanner键盘录入数据
    1.导包
    import java.util.Scanner
    2.创建对象
    Scanner sc = new Scanner(System.in);
    3.接收数据
    int i = sc.nextInt();
    float f = sc.nextFloat();
    ...
    接收字符串类型的数据
    String s = sc.nextLine();
    8.if语句
    if语句注意事项:
    if语句后面的小括号里面的值必须是boolean类型的
    if语句后面如果没有大括号,默认只能控制一条语句;如果想要控制多条语句的话,必须加大括号
    ";":一条语句的结束标志,也可以表示一条空语句

    if语句格式3:
    if(关系表达式1){
    语句体1;
    }else if(关系表达式2){
    语句体2;
    }else if(关系表达式3){
    语句体3;
    }
    ...
    else{
    语句体n+1;
    }
    执行流程:
    计算关系表达式1的值
    如果值是true就执行语句体1
    如果值是false,就计算关系表达式2的值
    如果值是true就执行语句体2
    如果值是false,就计算关系表达式3的值
    如果值是true就执行语句体3
    如果值是false,就计算关系表达式n的值
    如果值是true就执行语句体n
    如果值是false就执行else大括号里面的语句体n+1

    练习题代码:

    /*
    键盘录入x的值,计算出y的并输出
        x和y的关系满足如下:
        x>=3    y = 2x + 1;
        -1<=x<1    y = 2x;
        x<-1    y = 2x – 1;
    */
    import java.util.Scanner;
    class Test{
        public static void main(String[] args){
            Scanner sc = new Scanner(System.in);
            System.out.println("请输入x的值:");
            int x = sc.nextInt();
            
            //判断区间,确定y的值
            int y;
            
            if(x>=3){
                y = 2*x+1;
            }else if(-1<=x && x<1){
                y = 2*x;
            }else if(x<-1){
                y = 2*x-1;
            }else{
                System.out.println("你输入的x不在指定区间中,无法给y的值,所以就给y赋值为0");
                y = 0;
            }
            
            System.out.println("y="+y);//错误: 可能尚未初始化变量y
        }
    }
  • 相关阅读:
    梯度提升树算法GBDT
    优先队列 priority_queue
    谭平 Vision Course Note 1~2 Recommended Textbook and Camera Basics
    侯捷老师C++基础课程笔记7-栈、堆和内存管理
    侯捷老师C++基础课程笔记6-三大特殊函数
    侯捷老师C++基础课程笔记5-操作符重载与临时对象
    侯捷老师C++基础课程笔记4-参数传递与返回值
    侯捷老师C++基础课程笔记3-构造函数(不含指针变量的class)
    侯捷老师C++基础课程笔记1-2
    C文件处理之24/32位bmp图像的旋转
  • 原文地址:https://www.cnblogs.com/ll1994/p/8351426.html
Copyright © 2011-2022 走看看