06算术运算符和习题

发布时间 2023-04-08 23:13:30作者: tin88eaby

算数运算符

建议:给符号两端预留空格

+ - * 
/ 除 
% 求余,取模
在生活中 23除7等于3余2
代码中23/7=3
23%7=2

例子:

public static void  main (String[] args) {
        //46天,包含了几周零几天
        int weeks = 46 / 7 ;
        int days = 46 % 7 ;
        System.out.println(weeks+"\t"+days);
        System.out.println("------");

        //商场搞活动100当120花,420元符多少钱
//        int beishu = 420 / 100 ;
//        int yushu = 420 % 100 ;
//        int yingai = beishu * 80 + yushu ;
//        System.out.println(yingai);
        int money = (420 / 120) * 100 + 420 % 120 ;
        System.out.println(money);

    }

关系运算符(比较运算符):

>  <  >=  <=  ==   !=不等于

单等是赋值语句,双等才是一般意义上的等于
字符串 比较不用== !=,用 equals() !equals()

关系运算符的运算结果全是boolean
例题

System.out.println("------");
        //题目:输入张三成绩,与李四(80),输出张三是否比李四高
        Scanner input = new Scanner(System.in) ;
        System.out.println("请输入张三成绩:");
        int zsScore = input.nextInt();
        System.out.println( zsScore > 80);

变量:num
表达式:num*122
遇到优先级问题:小括号

System.out.println("------");
       //int num 变量; num*3,num+num 表达式
        System.out.println(  (2+43%6) > (10/3*2)  );
        //首先思考优先级,但是需要记java运算符优先级,不好记,
        // 有歧义,直接先算的括起来,括号优先级最高
        System.out.println("------");

小细节:3 >= 2 表示3大于或等于2,所以结果为true,3 >=3 true

例题;关于通项

//题目:输入三位数,求各个位数之和
        Scanner inputsanweishu = new Scanner(System.in) ;
        System.out.println("请输入三位数:");
        int sanweishu = inputsanweishu.nextInt();
        int baiwei1 = sanweishu/100;
        int shiwei1 = sanweishu/10%10;
        int gewei1 = sanweishu%10;
        System.out.println(baiwei1+shiwei1+gewei1);
        //总结
        int num = 12345 ;
        int gewei = num/1      %10;//12345->5
        int shiwei = num/10    %10;//12345->1234->4
        int baiwei = num/100   %10;//12345->123->3
        int qianwei = num/1000 %10;//12345->12->2
        int wanwei =num/10000  %10;//12345->1->1
        //通项:num任意一一位,num、所在位数最小值 %10;

两数交换:中间变量,加减法(有溢出问题),位运算
例题

//题目:两个数交换
        int num1 = 10 ;
        int num2 = 20 ;
        /*方法1,通过中间变量实现交换
        int temp = num1;
        num1 = num2;
        num2 = temp;
        */
        /*方法2数学加减,不推荐,相加可能会溢出
        num1 = num1 + num2;//30
        num2 = num1 - num2;//10
        num1 = num1 - num2;//20
         */
        //方法3 位运算(效率最高,二进制)
        num1 = num1 ^ num2;
        num2 = num1 ^ num2;
        num1 = num1 ^ num2;

        System.out.println(num1);
        System.out.println(num2);

关于溢出
最大值+1变最小值
最小值-1变最大值
示例:

System.out.println("------");
        int max = Integer.MAX_VALUE;//int最大值
        int min = Integer.MIN_VALUE;//int最小值
        System.out.println("最大值:"+max);
        System.out.println("最大值+1:"+(max+1));
        System.out.println("最小值"+min);