• 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
        }
    }
  • 相关阅读:
    实验8-1-8 报数 (20分) 浙大版《C语言程序设计实验与习题指导(第3版)》题目集
    6-11 求自定类型元素序列的中位数 (25分)
    L2-032 彩虹瓶 (25分)
    L2-031 深入虎穴 (25分)
    L2-029 特立独行的幸福 (25分)
    L1-064 估值一亿的AI核心代码 (20分) 团体程序设计天梯赛-练习集
    7-16 一元多项式求导 (20 分) 数据结构与算法题目集(中文)
    7-28 搜索树判断 (25 分) 数据结构与算法题目集(中文)
    数据加密之SymmetricAlgorithm加密
    数据加密之RijndaelManaged加密
  • 原文地址:https://www.cnblogs.com/ll1994/p/8351426.html
Copyright © 2020-2023  润新知