运算符--

1、算数运算符

==什么是运算符、什么是表达式==

运算符就是对常量或变量操作的符号;表达式的意思是用运算符把常量或变量连接起来符合java语法的式子

举例说明:

int a = 10;
​
int b = 20;
​
int c = a + b;
​
这里的 ‘=’ ‘+’ 都是运算符;
a+b 是表达式

 

 

 

 

==特别注意单引号的+是算术运算符用于相加;而双引号的+是连接作用不是相加作用。如:==

int a = 10;
int b = 20;
int c = a+b;
System.out.println(c);// 输出结果是30
​
int a = 10;
int b = "20";
int c = a+b;
System.out.println(c);// 输出结果是1020

==案例:数值拆分==

需求:键盘录入一个三位数,将其拆分为个位、十位、百位后,打印在控制台

分析:

①:使用Scanner键盘录入一个三位数
②:个位的计算:数值 % 10
    123 除以 10(商12,余数为3)
③:十位的计算:数值 / 10 % 10
    123 除以 10 (商12,余数为3,整数相除只能得到整数)
    12 除以 10 (商1,余数为2)
④:百位的计算:数值 / 100
    123 除以 100  (商1,余数为23)

公式总结:

个位 :数值 % 10
十位 :数值 / 10 % 10
百位 :数值 / 10 / 10 % 10
千位 :数值 / 10 / 10 / 10 % 10;

实现代码:

import java.util.*;
public class Day02_demo1{
    public static void main(String args[]){
        Scanner in = new Scanner(System.in);
        int result = in.nextInt();
        int ge = result%10;
        int shi = result/10%10;
        int bai = result/100%10;
        System.out.println("您输入的数字的个位数是:"+ge);
        System.out.println("您输入的数字的十位数是:"+shi);
        System.out.println("您输入的数字的百位数是:"+bai);
    }
}
​
int a = 1;
​

 

2、赋值运算符

3、关系运算符

4、逻辑运算符

 

 

5、位运算符

Java定义了位运算符,应用于整数类型(int),长整型(long),短整型(short),字符型(char),和字节型(byte)等类型。

位运算符作用在所有的位上,并且按位运算。

下表列出了位运算符的基本运算,假设整数变量 A 的值为 60 和变量 B 的值为 13:

操作符描述例子
如果相对应位==都是1==,则结果为1,否则为0(A&B),得到12,即0000 1100
|如果相对应位==都是 0==,则结果为 0,否则为 1(A | B)得到61,即 0011 1101
^如果相对应位值相同,则结果为0,否则为1(A ^ B)得到49,即 0011 0001
按位取反运算符翻转操作数的每一位,即0变成1,1变成0。(〜A)得到-61,即1100 0011
<<按位左移运算符。左操作数按位左移右操作数指定的位数。A << 2得到240,即 1111 0000
>>按位右移运算符。左操作数按位右移右操作数指定的位数。A >> 2得到15即 1111
>>>按位右移补零操作符。左操作数的值按右操作数指定的位数右移,移动得到的空位以零填充。A>>>2得到15即0000 1111
public class Test {
  public static void main(String[] args) {
     int a = 60; /* 60 = 0011 1100 */ 
     int b = 13; /* 13 = 0000 1101 */
     int c = 0;
     c = a & b;       /* 12 = 0000 1100 */
     System.out.println("a & b = " + c );
 
     c = a | b;       /* 61 = 0011 1101 */
     System.out.println("a | b = " + c );
 
     c = a ^ b;       /* 49 = 0011 0001 */
     System.out.println("a ^ b = " + c );
 
     c = ~a;          /*-61 = 1100 0011 */
     System.out.println("~a = " + c );
 
     c = a << 2;     /* 240 = 1111 0000 */
     System.out.println("a << 2 = " + c );
 
     c = a >> 2;     /* 15 = 1111 */
     System.out.println("a >> 2  = " + c );
  
     c = a >>> 2;     /* 15 = 0000 1111 */
     System.out.println("a >>> 2 = " + c );
  }
} 

6、三元运算符

 

 

完整代码:

public class Day02_demo02 {
    public static void main(String[] args) {
        int height1 = 150;
        int height2 = 210;
        int height3 = 185;
        int tempHeight = 0;
        tempHeight  = (height1>height2)?height1:height2;
        System.out.println("最高的和尚是:"+((tempHeight>height3)?tempHeight:height3));
    }
}
​
int c = 900;
System.out.println("最后的结果是:"+c);
​

6.1、Java运算符优先级

类别操作符关联性
后缀() [] . (点操作符)左到右
一元expr++ expr--从左到右
一元++expr --expr + - ~ !从右到左
乘性* /%左到右
加性+ -左到右
移位>> >>> <<左到右
关系> >= < <=左到右
相等== !=左到右
按位与左到右
按位异或^左到右
按位或|左到右
逻辑与&&左到右
逻辑或| |左到右
条件?:从右到左
赋值= + = - = * = / =%= >> = << =&= ^ = | =从右到左
逗号左到右

7、条件判断语句

 

 

完整代码:

import java.util.Scanner;
public class Day02_demo3 {
    public static void main(String[] args) {
            Scanner in = new Scanner(System.in);
            System.out.println("请输入数字:");
            int result = in.nextInt();
            if (result % 2 == 0) {
                System.out.println(result + "是偶数");
            } else {
                System.out.println(result + "是奇数");
            }
        }
}

完整代码:

import java.util.Scanner;
public class Day02_demo4 {
    public static void main(String[] args) {
            // 创建控制台输入类对象
            Scanner in = new Scanner(System.in);
            //提示用户操作
            System.out.println("请输入成绩:");
            // 获得用户输入的数字
            int result = in.nextInt();
            //判断数字的区间
            if(result>=95 & result<=100){
                System.out.println("奖励自行车一辆");
            }else if(result>=90 & result<=94){
                System.out.println("游乐场玩一次");
            }else if(result>=80 & result<=89){
                System.out.println("变形金刚玩具一个");
            }else {
                System.out.println("胖揍一顿.....");
            }
        }
}

8、选择语句

 

 

 

完整代码:

import java.util.Scanner;
public class Day02_demo5 {
    public static void main(String[] args) {
            Scanner in = new Scanner(System.in);
            System.out.println("请输入周几:");
            int result = in.nextInt();
            switch (result){
                case 1:
                    System.out.println("跑步");
                    break;
                case 2:
                    System.out.println("游泳");
                    break;
                case 3:
                    System.out.println("慢走");
                    break;
                case 4:
                    System.out.println("骑单车");
                    break;
                case 5:
                    System.out.println("拳击");
                    break;
                default:
                    System.out.println("躺平休息");
            }
        }
}

9、循环语句

  • for循环

  • while循环

  • do while循环

     

完整代码:

public class Day02_demo5 {
    public static void main(String[] args) {
        int sum = 0;
        for(int i=1;i<=5;i++){
            sum = sum+i;
        }
        System.out.println("1加到5的和是:"+sum);
    }
}

完整代码:

public class Day02_demo6 {
    public static void main(String[] args) {
        int sum = 0;
        for(int i=1;i<=100;i++){
            if(i%2==0){
                sum = sum+i;
            }
        }
        System.out.println("1~100之间的偶数和是:"+sum);
    }
}

 

完整代码:

/**
 * 一个三位数的数字,个位十位百位的立方和仍等于原数,那么这个数就被称为是水仙花数
 */
public class Day02_demo5 {
    public static void main(String[] args) {
        for (int i=100;i<1000;i++){
            int ge = i%10;
            int shi = i/10%10;
            int bai = i/100;
            if(ge*ge*ge+shi*shi*shi+bai*bai*bai==i){
                System.out.println(i+"是水仙花数");
            }
        }
    }
}

需求变更了,不要一次性打印出来,我要的效果是每行打印两个水仙花数,代码应该怎么写?

完整代码:

/**
 * 一个三位数的数字,个位十位百位的立方和仍等于原数,那么这个数就被称为是水仙花数
 */
public class Day02_demo6 {
    public static void main(String[] args) {
        int count = 0;// 定义一个记录行个数的变量,用于控制换行
        for (int i=100;i<1000;i++){
            int ge = i%10;
            int shi = i/10%10;
            int bai = i/100;
            if(ge*ge*ge+shi*shi*shi+bai*bai*bai==i){
                System.out.print(i+"是水仙花数");
                count++;// 记录数自动加1
                if(count%2==0){// 用记录数来判断是否是偶数个
                    System.out.println();//换行
                }
            }
        }
    }
}

 

完整代码:

public class Day02_demo7 {
    public static void main(String[] args) {
        int count = 0;//记录次数
        double paper = 0.1;
        while (paper<8848000){
            paper = paper*2;
            count++;
            System.out.println(paper);
        }
        System.out.println("要折"+count+"次");
    }
}

10、跳转控制语句

  • continue 用在循环中,基于条件控制,跳过某次循环体内容的执行,继续下一次的执行

  • break 用在循环中,基于条件控制,终止循环体内容的执行,也就是说结束当前的整个循环

完整代码:

public class Day02_demo8 {
    public static void main(String[] args) {
        for (int i=1;i<100;i++){
           if(i%10==7 || i/10%10==7 || i%7==0){
               System.out.println(i+"是要喊过的数字,所以过");
               continue;//只是跳过本次循环,并没有终止循环;
              // break;//如果是break那么循环就终止了
           }
        }
    }
}

11、Random类

作用:用于产生一个随机数

使用步骤:

第一步:导包

import java.util.*;

第二步:创建对象

Random r = new Random();

第三步:获取随机数

int number = r.nextInt(10);// 10以内的随机数,取值范围是 [0,10}

案例:

需求:中午不知道吃什么,产生随机数,如果是1就吃黄焖鸡,如果是2就吃螺蛳粉,如果是3就吃木桶饭,如果是4就吃花甲粉,都不是就不吃了

完整代码:

import java.util.Random;
public class Day02_demo9 {
    public static void main(String[] args) {
        Random r = new Random();
        int number = r.nextInt(5);
        System.out.println("产生的随机数是:"+number);
        switch (number){
            case 1:
                System.out.println("恭喜黄焖鸡中奖");
                break;
            case 2:
                System.out.println("恭喜螺蛳粉中奖");
                break;
            case 3:
                System.out.println("恭喜木桶饭中奖");
                break;
            case 4:
                System.out.println("恭喜花甲粉中奖");
                break;
            default:
                System.out.println("不吃了");
                break;
        }
    }
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值