常用的运算符及循环结构

常用的运算符及循环结构

运算符

算数运算符:+、-、*、/、%、++、–

  • +、-、*、/、运算规则和生活中相同,进行运算即可,

  • %是取余或叫取模,当余数为零时为整数,不为零时则余数是都少就是多少,例如8%2为0,5%2为1

  • ++为自增运算符,–为自减运算符,当其单独使用时,在前在后都一样,当其被使用时,++/–在前,先进行运算,输出值为++/–后的值,当其在后时,输出值不变,后进行加/减操作

    int a = 10;
    int b = 20;
    //当++/--未被使用时,直接进行运算,
    a++;//a=10+1
    ++b;//b=20+1
    System.out.println(a+","+b);//11,21
    //当其进行使用时
    int c,d;
    c = ++a;//在前,先进行运算a=11+1,记录a的值为12,再将a的值给c,c=12
    d = b++;//在后,先记录b的值为21,进行运算b=b+1,将之前的b值赋值给d,d=21;
    System.out.println(c+","+d);//12,21
    

关系运算符:>、<、>=、<=、==、!=

  • 大于>,小于<,大于或等于>=,小于或等于<=,等于==,不等于!=,运算规则与现实基本一致

  • 关系运算的结果为boolean型,关系成立则为true,关系不成立则为false

逻辑运算符:&&、||、!

  • &&:短路与(并且),两边都为真则为真,见false则false

    若第1个条件为false,则发生短路(后面的不执行了)

  • ||:短路或(或者),有真则为真,见true则true

    ​ 若第1个条件为true,则发生短路(后面的不执行了)

  • !:逻辑非(取反),非真则假,非假则真

逻辑运算是建立在关系运算的基础之上的,逻辑运算的结果也是boolean型

赋值运算符:=、+=、-=、*=、/=、%=

  • 简单赋值运算符:=

  • 扩展赋值运算符:+=、-=、*=、/=、%=,扩展赋值自带强转功能

    int a = 5;
    a += 10; //相当于a=(int)(a+10)
    System.out.println(a); //15
    a *= 2; //相当于a=(int)(a*2)
    System.out.println(a); //30
    a /= 6; //相当于a=(int)(a/6)
    System.out.println(a); //5
    
    short s = 5;
    //s = s+10; //会出现编译错误,需强转,改为:s=(short)(s+10);
    s += 10; //相当于: s=(short)(s+10);
    

字符串连接:+

  • 若两边为数字,则做加法运算

  • 若两边出现了字符串,则做字符串连接
    —任何类型的数据与字符串相连,结果都会变为字符串类型

    int a = 10;
    int b = 20;
    System.out.println(a+b);//30
    System.out.println(a+","+b);//10,20,不是因为逗号分割,若为空字符串则为1020
    

条件运算符(也叫三目运算符):判断条件?值1:值2

  • 语法:Boolean?值1:值2

  • 运行时需要计算Boolean的值,若结果为真则为值1,若结果为假为值2

    int num = 5;
    int boolean = num>0?1:-1;
    System.out.println(boolean); //1
    

分支结构:

if结构:只有一条路

  • 语法:if(判断条件){语句块} 判断条件为真时则会执行该条件,为假则不执行

    int a = 10;
    if (a<5){
        System.out.println("比较小");
    }
     System.out.println("比较大");
    //因为a<5为假,所以不会走if的语句块,结果会输出比较大
    

if…else结构:可以有两条路

  • 语法:if(判断条件){语句块1}else{语句块2} 判断条件为真则输出语句块1,为假则输出语句块2

    //1)偶数、奇数的判断:
    int num = 5; //带数(6,5)
    if(num%2==0){
        System.out.println(num+"是偶数");
    }else{
        System.out.println(num+"是奇数");
    }
    System.out.println("完毕");
    

if…else if结构:可以有多条路

  • 语法:if(判断条件1){语句块1}else if(判断条件2){语句块2}else{语句块,3} 执行时会先对第一个条件进行判断,若为真则会走语句块1,为假则继续向下执行第二个判断条件,为真则执行语句块2,其他情况则执行语句块3。注意if…else if 并非只可以写三条,可以写多个判断条件,在后面添加else if就可以了,执行时其中的语句块必然会执行一个。

     double score = 88;
    //带数(888,-56,95,85,65,45)
    if(score<0 || score>100){
    		System.out.println("成绩不合法");
    	}else if(score>=90){ //合法
    		System.out.println("A-优秀");
    	}else if(score>=80){
    		System.out.println("B-良好");
    	}else if(score>=60){
    		System.out.println("C-中等");
    	}else{
    		System.out.println("D-不及格");
    	}
    

switch…case结构:多条路

  • 优点:效率高,结构清晰;缺点:只能对整数进行判断相等

  • break:跳出switch;建议在每句后都加一个break进行跳出,否则程序会继续向下执行,直到走完

    System.out.println("请选择功能: 1.取款 2.存款 3.查询余额 4.退卡");
    int command = 1;//可以代数1、2、3、4
    switch(command){
                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("输入错误");
            }
    

循环结构

循环就是反复多次的执行一段代码,循环有三个要素:循环变量的初始化,循环的条件(以循环变量为基础),循环变量的改变(向着循环的结束进行变化)

while循环

  • 语法:while(判断条件){语句块–相当于反复执行的代码} 该结构先判断后执行,有可能会一次都不执行,执行时先对判断条件进行判定,若为真,则执行语句块,直到为假时停止执行,同时循环结束。

    //1)输出5次"行动是成功的阶梯":
    int times = 0;  //1.循环变量的初始化
    while(times<5){ //2.循环的条件
        System.out.println("行动是成功的阶梯");
        times++;    //3.循环变量的改变
    }
    System.out.println("继续执行...");
    

do…while循环结构:先执行后判断,一定会执行一次

  • 语法:do{语句块}while(判断条件)执行时先执行语句块,在对while进行判断,如果为真则继续执行语句块,为假则循环结束。

      Scanner scan = new Scanner(System.in);
            int num = (int)(Math.random()*1000+1); //1到1000之内的随机数
            System.out.println(num); //作弊
    
            //假设num=250
            //300(大),200(小),250(对)
            int guess;
            do{
                System.out.println("猜吧!");
                guess = scan.nextInt(); //1+3
                if(guess>num){
                    System.out.println("太大了");
                }else if(guess<num){
                    System.out.println("太小了");
                }else{
                    System.out.println("恭喜你猜对了");
                }
            }while(guess!=num); //2
    

for循环:应用率很高,与次数相关的循环

  • 语法:for(初始化;循环条件;循环变量改变){语句快} 执行时会先进行初始化,之后对循环条件进行判断,为真则执行语句块,之后循环变量改变,再次进行判断,为真则继续,为假则循环结束。

    for(int times=0;times<5;times++){
        System.out.println("行动是成功的阶梯");
    }
    //for中的循环变量num的作用域----仅在当前for中
    

    注:continue是跳过循环体进入下一次循环。break是跳出循环

嵌套循环:循环中套循环

  • 循环中套循环,常常多行多列时使用,一般外层控制行,内层控制列

  • 执行规则:外层循环走一次,内层循环走所有次

  • 建议:嵌套层数越少越好,能用一层就不用两层,能用两层就不用三层

  • break只能跳出当前层循环

    //输出99乘法表
    for(int num=1;num<=9;num++){ //控制行
        for(int i=1;i<=num;i++){ //控制列
          System.out.print(i+"*"+num+"="+i*num+"\t"); //print():输出不换行
            //\t:水平制表位,固定占8位----------一般用于做对齐
        }
        System.out.println(); //换行
    }
    

该内容仅用作学习和复习用,如有错误欢迎指正!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值