记录Java学习—运算符及循环

算数运算符

1.基本四则运算:+ - * / %(取余)(可以对int 也可以对double)*
增量赋值运算符:+= -= *= /= %=
自增自减: ++ - - 如果不取自增运算表达式的返回值 则前置自增和后置自增无区别
如果取自增运算表达式的返回值,则前置返回值是自增之后的值,后置是自增之前的值

public static void main2(String[] args) {
        System.out.println(4 / 8.0);
        System.out.println(10 % 3);//1
        System.out.println(11.5 % 2.0);//可以算小数的余数
        //% 可以对int求模,也可对double求模
        //System.out.println(8/0);
        System.out.println("fsdafihasfhsdlifhsal");
        int a = 10;
        System.out.println(++a);//返回值是11
        System.out.println(a++);//返回值是10
        //如果不取自增运算表达式的返回值 则前置自增和后置自增无区别
        //如果取自增运算表达式的返回值,则前置返回值是自增之后的值,后置是自增之前的值
        int b = 10;
        b = b++;// java的反汇编
        System.out.println(b);//10
    }

2.关系运算符
== ! = < > <= >=
注意:关系运算符的表达式返回值都是boolean类型
3.逻辑运算符
&& || !
&&和||遵守短路求值

public static void main(String[] args) {
        //关系运算符 表达式的返回值都是Boolean类型
        int a = 10;
        int b = 20;
        System.out.println(a <= b);
        System.out.println(!(a <= b));
        int c = 30;
        System.out.println(a < b && b < c);//逻辑与
        System.out.println(a < b || b < c);//逻辑或
        //System.out.println(!a<b);
        System.out.println(10 > 20 && 10 / 0 == 0);//&&和||遵守短路求值
        System.out.println(10 < 20 || 10 / 0 == 0);
    }

4.位运算符 &(按位与) |(按位或) ~按位取反 ^按位异或
位操作表示按照二进制位运算。

public static void main(String[] args) {
        //位运算符 &(按位与) |(按位或) ~按位取反 ^按位异或
        int a = 10;//1010
        int b = 20;//10100
        System.out.println(a & b);
        System.out.println(a | b);
        System.out.printf("%x\n", ~a);
        System.out.println(a ^ b);
    }

5.移位运算 << >> >>>
左移:<< 最左侧位不要了,最右侧补0
右移:>>最右侧位不要了,左侧补充符号位(整数补0,负数补1)
无符号右移:>>>最右侧位不要了,最左侧补0

 public static void main(String[] args) {
        //移位运算符 左移<< 右移>> 符号位为正补0 为负补1 无符号右移>>> 最右位不要了 最左补
        int a = 10;//0000 1010
        System.out.println(a << 1);//0001 0100 乘2^n
        System.out.println(a << 2);//0010 1000 *2^2
        System.out.println(a >> 1);//0000 0101 除2^n
        System.out.println(a >>> 1);
        //题如何将一个数快速的扩大8位--> 给这个数左移3位
}

6.条件运算符
表达式1 ? 表达式2 : 表达式3
当表达式1的值为true时,整个表达式的值为表达式2的值,当表达式1的值为false时,整个表达式的值为表达式3的值

public static void main(String[] args) {
 //条件运算符 求两个数最大值
        int b = 10;
        int c = 20;
        int max = b > c ? b : c;
        System.out.println(max);
    }

循环

1.if语句 例

public static void main6(String[] args) {
        //if语句 判断是否是闰年
        Scanner scanner = new Scanner(System.in);
        int year = scanner.nextInt();
        if (year % 100 != 0 && year % 4 == 0 || year % 400 == 0) {
            System.out.println(year + " 是闰年");
        } else {
            System.out.println(year + " 不是闰年");
        }
    }

2.switch语句
问题:不能做switch的参数的数据类型 有哪些? long float double boolean

public static void main7(String[] args) {
        //面试问题:不能做switch的参数的数据类型 有哪些?
        //1、long   float    double    boolean
        //JDK1.5引入了枚举   switch的参数也可以是枚举
        int a = 1;
        switch (a) {
            case 1:
                System.out.println("1");
                break;
            case 2:
                System.out.println("2");
                break;
            case 3:
                System.out.println("3");
                break;
            default:
                System.out.println("输入有误");
                break;
        }
    }

3.for循环

public static void main(String[] args) {
        //for循环
        for(int i = 1;i <= 10; i++){
            System.out.println(i);
        }
    }

题:计算1-10所有奇数的和 计算1-10所有偶数的和

public static void main8(String[] args) {
        //计算1-10所有奇数的和
        int sum = 0;
        int i = 1;
        while (i <= 10){
            sum += i;
            i += 2;
        }
        System.out.println(sum);
        //计算1-10所有偶数的和
        int sumEve = 0;
        int j = 0;
        while (j <= 10){
            sumEve += j;
            j += 2;
        }
        System.out.println(sumEve);
    }

题 :计算5的阶乘 计算3!+2!+1!阶乘之和

public static void main9(String[] args) {
        //计算5的阶乘
        int n = 1;
        int result = 1;
        while (n <= 5) {
            result *= n;
            n++;
        }
        System.out.println(result);
        //计算3!+2!+1!阶乘之和
        int j = 1;
        int sumFac = 0;
        while (j <= 3){
             int i1 = 1;
             int ret = 1;
         while (i1 <= j){
             ret *= i1;
             i1++;
         }
             sumFac += ret;
             j++;
        }
        System.out.println(sumFac);
    }

题:找到100-200之间第一个3的倍数 break continue

public static void main10(String[] args) {
        //找到100-200之间第一个3的倍数 break continue
        int i = 100;
        int num = 200;
        while (i <= num){
            if (i % 3 == 0){
                System.out.println(i);
                break;
                //continue;出错了会死循环
            }
            i++;
        }
    }
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值