03-运算符+分支结构

运算符

  • --1、算数运算符
    •   --包括: +-*/ % ++ --
  • --2、比较运算符:结果是boolean类型
    •   --包括: == !=
  • --3、逻辑运算符:结果是boolean类型
    •   --包括: & | && || + !
  • --4、三元运算符:结果是2或者3
    •   --格式: 1 ? 2 : 3
  • --5、赋值运算符
    •   --包括: = += -= *= /=

 逻辑运算符(重点)  

单与 & :表示并且关系
  1 & 2 ,如果结果想要得到true,要求是:1和2都是true

单或 | :表示或者关系
  1 | 2 ,如果结果想要得到true,要求是:1是true或者2是true

双与 / 短路与 -- && :表示并且关系,高效
  1 && 2 ,如果1判断不成立得到了false(结果已经注定了就是false),2会被短路,提高效率。

双或 / 短路或 -- || :表示或者关系,高效
  1 || 2 ,如果1判断成立得到了true(结果已经注定了就是true),2会被短路,提高效率。
1.与运算符
与运算符用符号“&”表示,其使用规律如下:
两个操作数中位都为1,结果才为1,否则结果为0,例如下面的程序段。
public class data13
{
public static void main(String[] args)
{
int a=129;
int b=128;
System.out.println("a 和b 与的结果是:"+(a&b));
}
}
运行结果
a 和b 与的结果是:128
下面分析这个程序:
“a”的值是129,转换成二进制就是10000001,而“b”的值是128,转换成二进制就是10000000。
根据与运算符的运算规律,只有两个位都是1,结果才是1,可以知道结果就是10000000,即128。 2.或运算符 或运算符用符号“|”表示,其运算规律如下: 两个位只要有一个为1,那么结果就是1,否则就为0,下面看一个简单的例子。 public class data14 { public static void main(String[] args) { int a=129; int b=128; System.out.println("a 和b 或的结果是:"+(a|b)); } } 运行结果 a 和b 或的结果是:129 下面分析这个程序段: a 的值是129,转换成二进制就是10000001,而b 的值是128,转换成二进制就是10000000,
根据或运算符的运算规律,只有两个位有一个是1,结果才是1,可以知道结果就是10000001,即129。

运算符的练习

练习:自增自减

package cn.tedu.basic;
/**
*@author 作者:李强
*@email 邮箱:1435430561@qq.com
* 日期: 2020年4月30日
*/
//这个类用来测试自增自减
public class Test2_Zizeng {

    public static void main(String[] args) {
        //符号在后,先使用后变化
        int a = 1;
        System.out.println(a++);//1
        System.out.println(a);//2
        //符号在前,先变化后使用
        int b = 1;
        System.out.println(++b);//2
        System.out.println(++a+b+a++);//8
        System.out.println(a);//4
        
        int c = 1;
        System.out.println(c--);//1
        int d =1;
        System.out.println(--d);//0
        System.out.println(--c-c-d--);//0
        
        //System.out.println(a+++a);//a++ 然后+a
        int x = 10;
        int y = 20;
        int z = ++x+y-y--+x--;
        System.out.println(z);//22
        System.out.println(++x+y-y--+x--);//22
        
    }
}

练习:求两个数里的大值 ,三个数里的大值(三目运算  1 ? 2 : 3)

 

package cn.tedu.basic;
import java.util.Scanner;
/**
*@author 作者:李强
*@email 邮箱:1435430561@qq.com
* 日期: 2020年4月30日
*/
//求两个数里的大值
public class Test3_Max {
    public static void main(String[] args) {
        //定义变量
        System.out.println("请输入一个数a");
        int a=new Scanner(System.in).nextInt();
        System.out.println("请输入一个数b");
        int b=new Scanner(System.in).nextInt();
        System.out.println("请输入一个数c");
        int c=new Scanner(System.in).nextInt();
        System.out.println("输入的数分别为a = "+a+" b = "+b+" c ="+c);
        int max = a>b?a:b;
        System.out.println("两个个数中"+a+" "+b+"的最大的数为:"+max);
        max = max>c?max:c;
        System.out.println("三个数中"+a+" "+b+" "+c+"的最大的数为:"+max); 
//        int max = (a>b?a:b)>c?(a>b?a:b):c;
//        System.out.println(max);                    
    }
}

练习:平年闰年  

package cn.tedu.basic;
import java.util.Scanner;
/**
*@author 作者:李强
*@email 邮箱:1435430561@qq.com
* 日期: 2020年4月30日
*/
//测试平年闰年
public class Test4_Year {
public static void main(String[] args) {
System.out.println("请输入年份:");
int year = new Scanner(System.in).nextInt();
String desc ="平年";
//    if ((year%4==0 && year%100!=0) || year%400==0) {
//desc = "闰年";
//    System.out.println(year+"年是闰年");
//    }else {
//    System.out.println(year+"年不是闰年");
//    }
//System.out.println((year%4==0 && year%100!=0) || year%400==0?"闰年":"平年");
if ((year%4==0 && year%100!=0) || year%400==0) {
desc = "闰年";
}
System.out.println(year+"年是"+desc);
}
}

分支结构

if分支:

--语法
        单分支:
        if( 判断条件 ){ 
            满足条件的代码 
        }
        多分支:
        if( 判断条件 ){ 
            满足条件的代码 
        }else{
            不满足条件的代码
        }
        嵌套分支:
        if( 判断条件1 ){ 
            满足条件的代码1 
        }else if( 判断条件2 ){ 
            满足条件的代码2 
        }else if( 判断条件3 ){ 
            满足条件的代码3 
        }else{
            谁都不满足的代码
        }

练习:商品打折

package cn.tedu.ifdemo;
import java.util.Scanner;
/**
*@author 作者:李强
*@email 邮箱:1435430561@qq.com
* 日期: 2020年4月30日
*/
//测试商品打折
public class Test5_Discount {
    public static void main(String[] args) {
        System.out.println("请输入商品价格");
        double price = new Scanner(System.in).nextDouble();
        double dis=price;//折后价
        if (price>=5000) {
            dis=price*0.5;
        }else if (price>=2000) {
            dis=price*0.7;
        }else if (price>=1000) {
            dis=price*0.9;
        } 
        System.out.println("原价是"+price+",折后价为:"+dis);
    }
}

练习:成绩分等级

package cn.tedu.ifdemo;
import java.util.Scanner;
/**
*@author 作者:李强
*@email 邮箱:1435430561@qq.com
* 日期: 2020年4月30日
*/
//统计成绩在哪个等级
public class Test6_Chengji {
    public static void main(String[] args) {
        System.out.println("请输入学生的成绩");
        double cj = new Scanner(System.in).nextDouble();
        String grade ="";
        if (cj>100 || cj<0) {
            System.out.println("请输入0~100以内的值");
            //return;
            System.exit(0);
        }
        if (cj>=90) {
            grade ="优秀";
        }else if (cj>=80) {
            grade="良好";
        }else if (cj>=70) {
            grade="中等";
        }else if (cj>=60) {
            grade="合格";
        } else {
            grade="不合格";
        }
        System.out.println("学生的成绩为"+cj+",等级属于:"+grade);
    }
}

Switch分支:

概述:

当一个case成立,从这个case向后穿透所有case,包括default,直到程序结束或者遇到break程序才结束。

switch(expr1)中,expr1是一个整数表达式, 整数表达式可以是int基本类型或Integer包装类型,由于byte,short,char都可以隐含转换为int,所以也支持。

注意: jdk1.7以后新增 String

语法:

switch(变量或者表达式){
       case 1:
       case 2:
       case 3:  
       case 4:  
       default:

}    

练习:数字匹配

package cn.tedu.ifdemo;
        //这个类用来测试  数字匹配
        //简单了解即可!!
        public class Test7_Switch {
            public static void main(String[] args) {
                int a = 2 ;
                //1、参数a相当于把数字2传递成功
                switch ( a  )  {//0、整型表达式对于数据类型有要求:byte short int char jdk1.7后String
                    //2、开始匹配各种情况
                    case '0' : System.out.println(0); break ;
                    case 1 :System.out.println(1); break ;
                    //3、成功匹配了数字2的情况,并向后穿透所有case,包括default
                    case 2: System.out.println(2);  break ;  //4、break用来结束程序
                    case 3: System.out.println(3); break ;
                    case 4: System.out.println(4); break ;              
                    default : System.out.println(99);
                }               
            }
        }

 

posted on 2020-05-03 20:45  liqiangbk  阅读(187)  评论(0编辑  收藏  举报

导航