判断

作者: lemon_crystal | 来源:发表于2020-03-01 14:30 被阅读0次

    1.关系运算
    比较两个值的关系
    == != > >= <= <
    关系运算的结果是布尔值,true或false
    优先级在算术运算之后,在赋值运算之前
    2.数值类型比较
    整型与浮点型之间可以进行比较
    需要注意某些情况下,对运算结果的比较可能会出现错误,如

    double a = 1.0;
    double b ;
    b = 0.1 + 0.1 + 0.1 + 0.1 + 0.1 + 0.1 + 0.1 + 0.1 + 0.1 + 0.1 ;
    System.out.println(a == b);
    
    false
    

    原因是十进制数字在计算机中首先转化为二进制,之后对二进制进行运算,最后将结果转化为十进制再输出。但是十进制数与二进制数并非一一对应,所以小数点后很多位处可能会出现误差,称为不确定尾数,因此在对浮点数计算结果进行比较是出现了false。
    所以此时不对两个浮点数进行直接比较,而是比较二者之差的绝对值是否小于某一极小的数,如果小于,那么认为两个浮点数相等,如果不小于,则不认为其相等。如

    double a = 1.0;
    double b ;
    boolean c ;
    b = 0.1 + 0.1 + 0.1 + 0.1 + 0.1 + 0.1 + 0.1 + 0.1 + 0.1 + 0.1 ;
    System.out.println(a == b);
    c = Math.abs(a - b) < 0.00001;
    System.out.println(c);
    
    false
    true
    

    3.if-else
    if(条件)
    {
    操作
    }
    else if()
    {
    操作
    }
    else()
    {
    操作
    }
    可以根据需要添加else if模块的数量,也可以只使用if模块
    4.流程图
    在涉及到循环结构,分支结构时,应当根据需要绘制流程图,方便理解算法

    image.png
    image.png
    5.嵌套级联
    需要注意在使用if语句的嵌套级联时,else对应的是离它最近的上一个if,如
    int a;
    int b;
    int c;
    int Max;
    Scanner in = new Scanner(System.in);
    a = in.nextInt();
    b = in.nextInt();
    c = in.nextInt();
    if(a <= b)
    {
        if(b <= c)
        {
            Max = c;
        }
        else 
        {
            Max = b;
        }
    }
    else
    {
        Max = a;
    }
    System.out.println(Max);
    

    为了防止出现错误,使用if时一定要使用大括号,将结构区分清楚
    6.switch case
    switch(表达式)
    {
    case 值:
    操作
    case 值:
    操作
    }
    根据表达式的值进入对应的分支结构,如

    int a = 1;
    switch(a)
    {
    case 1:
        System.out.println("a = 1");
        break;
    case 2:
        System.out.println("a = 2");
        break;
    }
    
    a = 1
    

    7.break
    需要注意的是当进入某一case后,会向下执行剩余的所有case,如果要求仅执行对应的case,那么需要在每一case最后增加break

    相关文章

      网友评论

          本文标题:判断

          本文链接:https://www.haomeiwen.com/subject/wffvhhtx.html