Java&day02

1.运算符

1.算术运算符

符号作用
+
-
*
/
%取余

1.1.1 运算符和表达式


    运算符:对常量或者变量进行操作的符号
   表达式:用运算符把常量或者变量连接起来符合java语法的式子就可以称为表达式。
   不同运算符连接的表达式体现的是不同类型的表达式。
      +   -    *    /     % 
  注意:
       /和%的区别:两个数据做除法,/取结果的商,%取结果的余数。
       整数操作只能得到整数,要想得到小数,必须有浮点数参与运算。

public class demo1 {
    public static void main(String[] args) {
        //代码演示:
        System.out.println(10 + 20);  //30
        System.out.println(10 - 20);  //-10
        System.out.println(10 * 20);  //200
        System.out.println(10 / 3);   // 整数和整数计算的结果必须是整数 3
        System.out.println(10 % 3);   // 1
        System.out.println(7  % 10);  // 7
        System.out.println(13 % 5);   // 3
    }
}

2.字符的+操作

      每个字符的底层其实都是一个数字
     要记住常用的字符的值。
     在字符加数字的情况下,结果会变成一个数字

public class demo1 {
    public static void main(String[] args) {
        //代码演示:
        System.out.println('a' + 1);  //98    'a' -->  97
        System.out.println('A' + 1);  //66    'A' -->  65
        System.out.println('0' + 1);  //49    '0' -->  48 
        System.out.println('我'+ 1); //25106  '我'-->  25105
    }
}

3.字符串的+操作

    字符串遇到+就不是加法运算了,是拼接效果。
    字符串和任何类型连接都会变成一个更大的字符串。


public class demo1 {
    public static void main(String[] args) {
        //代码演示:
        System.out.println("黑马" + 66 + 6);    //"黑马666"
        System.out.println(99 + 1 + "黑马");    //"100黑马"
        System.out.println("黑马" + (66 + 6));  //"黑马72"

        // 10+20=30
        System.out.println(10 + "+" + 20 + "=" + 30);     // 10+20=30

        int a = 6;
        //使用这个a打印出:     6+6=12
        System.out.println(a + "+" + a + "=" + (a+a));  //6+6=12
    }
}

4.赋值运算符

符号作用说明
=赋值a=10,将10赋值给变量a
+=加后赋值a+=b,将a+b的值给a
-=减后赋值a-=b,将a-b的值给a
*=乘后赋值a*=b,将a×b的值给a
/=除后赋值a/=b,将a÷b的商给a
%=取余后赋值a%=b,将a÷b的余数给a

注意:

  扩展的赋值运算符隐含了强制类型转换。


public class demo1 {
    public static void main(String[] args) {
        /=    +=    -=    *=    /=     %=

       // 代码演示:
        //把10赋值给int类型的变量a
        int a1 = 10;

        //扩展的赋值运算符演示
        int a = 10;
        a += 20;    //相当于 a = a + 20;
        System.out.println(a);//30

        a -= 5;     //       a = a - 5;
        System.out.println(a); //25
    }
}

5.自增自减运算符

符号作用说明
++自增变量的值加1
--自减变量的值减1

++(给变量自身加一)    --(给变量自身减一)  

++前置:
    ++a;
        先加一,后运算
后置++:
    a++;
        先运算,后加一

 

public class demo1 {
    public static void main(String[] args) {
       // 代码演示:
        //在单独使用时,不涉及运算,前置和后置效果是一样的
        int a = 10;
        a++;
        //++a;
        System.out.println(a); //11


        int a = 10;
        //先把a的值赋值给b,然后a自身再加一
        int b = a++;
        System.out.println(a); //11
        System.out.println(b); //10


        int a = 10;
        //先让a自身加一,然后再把a的值赋值给b
        int b = ++a;
        System.out.println(a); //11
        System.out.println(b); //11


        int a = 10;
        int b = 20;
        //       10 + 21
        int c = a++ + ++b;
        System.out.println(c); //31
    }
}

6.关系运算符

符号说明
==a==b,判断a和b的值是否相等,成立为true,不成立为false
!=a!=b,判断a和b的值是否不相等,成立为true,不成立为false
>a>b,判断a是否大于b,成立为true,不成立为false
>=a>=b,判断a是否大于等于b,成立为true,不成立为false
<a<b,判断a是否小于b,成立为true,不成立为false
<=a<=b,判断a是否小于等于b,成立为true,不成立为false

>   <   ==   !=   >=   <=

关系运算符的结果一定是boolean类型。
=是赋值   ==是判断相等  ,千万不要把 == 写成 = !!! 

7.逻辑运算符

 

符号作用说明
&逻辑与a&b,a和b都是true,结果为true,否则为false
|逻辑或a|b, a和b都是false,结果为false,否则为true
^逻辑异或a^b,a和b结果不同为true,相同为false
!逻辑非!a,结果和a的结果正好相反
&&短路与作用和&相同,但是有短路效果
||短路或作用和|相同,但是有短路效果

 &    :与
                左右两端都是true,结果才是true,否则是false
|   :或
                左右两端都是false,结果才是false,否则是true
    
^   :异或
                两边相同为false,两边不同为true
        !   :非
                取反

 


&&  :短路与
        如果左边结果是false,右边就不会执行了。
    
||  :短路或
        如果左边结果是true,右边就不会执行了。

public class demo1 {
    public static void main(String[] args) {
  

       // 代码演示:
        int a = 10;
        int b = 20;
        //a++是后置,所以先运算后加一 10>10 false
        //++b是前置,所以先加一后运算 21>20 true
        System.out.println(a++>10 & ++b>20);   // false&true  --> false

        //在执行这行之前a已经是11了,11>10 true
        //在执行这行之前b已经是21了,21>21 false
        System.out.println(a++>10 | b++>21);   // true|false  --> true


        System.out.println(true  ^ true);    //false
        System.out.println(false ^ true);    //true
        System.out.println(true  ^ false);   //true
        System.out.println(false ^ false);   //false

        //!取反
        System.out.println(!(a>20));   //true
        System.out.println(!!(a>20));  //false



        //代码演示:
        int c = 10;
        int d = 20;
        //c++后置,10>10 false c变成11  右边不执行
        System.out.println(c++>10 && ++d>20);  //false

        //++d前置,先变成21,21>21 false  11>10 true             
        System.out.println(++d>21 || c++>10);  //true

        System.out.println(c); //12
        System.out.println(d); //21
    }
}

8.三元运算符

  格式:
       数据类型 变量名 = 关系表达式 ? 表达式1 : 表达式2;
    
  流程:
      如果关系表达式是true,就把表达式1赋值给变量
      如果关系表达式是false,就把表达式2赋值给变量

 


public class demo1 {
    public static void main(String[] args) {
        //代码演示:
        //求两个数字的较小值
        int a = 10;
        int b = 5;

        int c = a > b ? b : a;

        System.out.println(c);  //5

        //练习:
        //求三个整数的最大值
        int height1 = 150;
        int height2 = 210;
        int height3 = 220;

        //先求两个人的较大值
        int temp = height1 > height2 ? height1 : height2;

        //再拿较大值和第三个值比较
        int max = temp > height3 ? temp : height3;

        System.out.println("最大值是:" + max);
    }
}

9.优先级结论

  运算符其实是有优先级的
  比如&&的优先级大于||

  System.out.println(true || true && false);     //true

  //这个()可写可不写,但是尽量写上为了看起来清楚先执行的是后面
  System.out.println(true || (true && false));   //true

  优先级不需要记,写代码的时候,尽量把优先级手动表示清楚

2.键盘输入

 

  1. 导包

    import java.util.Scanner;
  2. 创建对象

    Scanner sc = new Scanner(System.in);
  3. 输入数据

    int a = sc.nextInt();
//导包
import java.util.Scanner;

public class demo1{
	//所有的变量名都是可以随便命名的
	public static void main(String[] args){
		
		//创建对象
		Scanner sc = new Scanner(System.in);
		
		//输入数据
		int a = sc.nextInt();
		
		//输出一下这个数据
		System.out.println("数据是:" + a);
		
	}
}

3.流程控制语句

  java中一共有三种流程语句,顺序结构、分支结构和循环结构

1.if语句

  格式:
      if(条件判断){
          语句体;
      }
    
  流程:
      如果条件判断的结果是true,语句体就执行
      如果条件判断的结果是false,语句体就跳过不执行

public class demo1{
	public static void main(String[] args){
		
		int a = 10;
		
		System.out.println("开始");
		
		if(a>20){
			System.out.println(a + "大于20");
		}
		
		System.out.println("结束");
	}
}

2.if...else语句

  格式:
      if(条件判断){
          语句体1;
      }else{
          语句体2;
      }
    
  流程:
      如果条件判断的结果是true,就执行语句体1
      如果条件判断的结果是false,就执行语句体2
      也就是说两个语句体一定会执行一个,也叫作是互斥判断。

public class demo1 {
    public static void main(String[] args) {
        int a = 30;
        int b = 20;
        //求两个数的较大值
        if(a > b){
            System.out.println("较大值是:" + a);
        }else{
            System.out.println("较大值是:" + b);
        }
    }
}

3.if...else if...语句

  格式:
     if(条件判断1){
        语句体1;
      }else if(条件判断2){
         语句体2;
     }else if(条件判断3){
         语句体3;
     }else{
         语句体4;
     }
    
流程:
    如果条件判断1的结果是true,就执行语句体1,别的不会执行了。
    如果条件判断1的结果是false,就会继续条件判断2,如果判断2的结果是true,就执行语句体2,别的不会执行了
    ……
    如果所有的if结果都是false,就执行else里面的语句体4
    
    else if()可以写任意多个,最后的else可以不写,也叫做是多分支判断,多个之中选一个执行。

 

import java.util.Scanner;
public class demo1{
    public static void main(String[] args){
		/*		
				0 ~ 60  不及格
				60~ 70  及格
				70~ 80  良好
				80~100  优秀
		*/

        Scanner sc = new Scanner(System.in);

        System.out.println("请输入一个分数:");
        int a = sc.nextInt();

        //判断
        if(a>=0 && a<60){
            System.out.println("不及格!!!");
        }else if(a>=60 && a<70){
            System.out.println("及格!!!");
        }else if(a>=70 && a<80){
            System.out.println("良好!!!");
        }else if(a>=80 && a<=100){
            System.out.println("优秀!!!");
        }else{
            System.out.println("啥也不是!!!!");
        }
    }
}

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值