运算符和控制语句

运算符和控制语句

一、算术运算符

总共有五种: + - * / %

package com.szwollf.Day05;
​
public class Operator {
    public static void main(String[] args) {
//        + - * / %
        int a=2;
        int b=3;
        System.out.println(a+b);
        System.out.println(a-b);
        System.out.println(a*b);
        System.out.println(a/b);//运算会放入int容器中,小数点后被省略
        int c=+5;
        int d=-7;
        System.out.println(c);
        System.out.println(d);
        System.out.println("---------------------------");
//        System.out.println(中);//输出语句中必须是数据类型的字面值,不属于java数据类型的字面值无法使用
        char a1='a';
        char a2='b';
        System.out.println(a1+a2);//char类型相加会转换为Unicode编码相加
        System.out.println(a1-a2);//char类型相加会转换为Unicode编码相减
        String b1="11";
        String b2="1";
        System.out.println(b1+b2);
//        System.out.println(b1-b2);//String类型 无法相减
        System.out.println(a1+b2);//char类型可以和String相加
        System.out.println("---------------------------");
        int c1=0;
        int c2=3;
        System.out.println(c1%c2);//0
        System.out.println(1%c2);//1除以大于1的整数都得零余一
//        System.out.println(c2%0);//算术异常
​
​
//        int i=1;
//        i=i++;
//        System.out.println(i);
    }
}
 

二、++和--

自增运算符和自减运算符

package com.szwollf.Day05;
​
public class Operator2 {
    public static void main(String[] args) {
        int m=1;
        int n=5;
        m=m++;//先赋值后加减
        n=++n;//先赋值后加减
        System.out.println(m);
        System.out.println(n);
        int i=1;
        int j=5;
        int s1=++i-j++-++i+j+++i++-j--;
        //2  -5  -3  +6  +3  -7    i=4 j=6
        System.out.println(s1);//-4 运算时++在前先加后赋值,++在后先赋值后加
        System.out.println(i);//4 不论是++i 还是i++ 最终i都自增了1,所以i值等于初始值加上++的数量减去--的数量
        System.out.println(j);//6  比如这里i的++有三个 i=1+3 j的++2个,--1个 j=5+2-1
    }
}

三、关系运算符

> < >= <= == !=

结果都是布尔类型

package com.szwollf.Day05;
// > <  >=  <=  ==   !=
public class Operator3 {
    public static void main(String[] args) {
        System.out.println(2>3);
        System.out.println(4<5);
        System.out.println(3>=3);
        System.out.println(2<=1);
        System.out.println(2==2);
        System.out.println(1!=2);
    }
}

 

四、逻辑运算符

逻辑运算符结果也是布尔类型

& | ^ && ||

package com.szwollf.Day05;
// &    |   !   ^   ||  &&
public class Operator04 {
    public static void main(String[] args) {
        System.out.println(true & true);
        System.out.println(false & true);
        System.out.println("---------------");
        System.out.println(false | true);
        System.out.println(false | false);
        System.out.println("---------------");
        System.out.println(!true);
        System.out.println(!false);
        System.out.println("---------------");
        System.out.println(false ^ true);//异或  或为真有三种类型 其中11为同或 01和10为异或 即值不相同的或
        System.out.println(true ^ true);
        System.out.println(false ^ false);//这个00就不属于或真 所以肯定是假
        System.out.println("---------------");
        int a=1;
        int b=3;
        System.out.println(false && a<++b);
        System.out.println(b);//b并没有自增 说明当短路与值一为false时 2压根不会运行 减少不必要的计算
        System.out.println(true || true);
    }
}
​

五、赋值运算符

= += -= *= /=

package com.szwollf.Day05;
//  =、+=、-=、*=、/=、%=
public class Operator05 {
    public static void main(String[] args) {
        int a=7;
        int b=3;
        System.out.println(b=a);//7
        System.out.println(b+=a);//14
        System.out.println(b*=a);//98
        System.out.println(b/=a);//14
        System.out.println(b%=a);//0
    }
}
​

六、三目运算符

语法:数据类型 变量名=boolean表达式?值1:值2

如果 boolean 成立则变量名等于值1

如果boolean不成立则变量名等于值2

package com.szwollf.Day05;
//三目运算符
public class Operator06 {
    public static void main(String[] args) {
        int weight=49;
        String figure=weight<50? "小姐姐好身材":"亲,建议多运动";
        System.out.println(figure);
    }
}

七、if语句

语法:if(布尔表达式){if体,可以是输出语句,变量也可以是if}

if-else语句语法:if(boolean表达式){ if执行体 }else{ else执行体 }

大括号可以省略,以分号分界,所以if和{}间不能加;会使得java找不到if执行体

package com.szwollf.Day05;
​
public class Operator07 {
    public static void main(String[] args) {
        if (2<30){
            System.out.println("2<30");
        }
        if (5>6){
            System.out.println("nonono!");
        }
        if (7>6){
            System.out.println("7>6");
        }
        else {//这个else会和最近的if匹配, 
            System.out.println("else");
        }
    }
}

if-else-if语句

语法:if(条1){ 执1 }else if(条2){ 执2}else if(条3){执3}...else{ else执行体 }

哪一个条件成立,执行哪一个执行体

如果都不成立,执行else执行体

package com.szwollf.Day05;
​
public class Operator07 {
    public static void main(String[] args) {
        int a=5if (a<30){
            System.out.println("2<30");
        }
        if (a>6){
            System.out.println("nonono!");
        }
        if (a>6){
            System.out.println("7>6");
        }
        else {//if和else间只能是if语句 这个else会和最近的if匹配,
            System.out.println("else");
        }
    }
}
​

八、switch语句

语法:switch(变量){

case 值1:

语句1

break;

case 值2:

语句2

break;

case 值3:

语句3

break;

...

default:

语句

}

解释:变量的值 == 值几 就会执行其下面的语句,类似于定值变阻器

package com.szpowernode.day03.switchdemo;

public class Demo01 {
    public static void main(String[] args) {
        int i=5;
        switch (i){
           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;
            case 6:
                System.out.println("星期六");
                break;
            case 7:
                System.out.println("星期天");
                break;
                default:
                    System.out.println("输入有误,请重新输入!");
        }


    }
}

如果符合的case后都没有break那么就会从此case一直输出到最后,类似于滑动变阻器

九、循环语句

循环语句分为for循环和while循环,do while循环

语法:for(初始化表达式;布尔表达式;迭代语句) { 循环体 }

package com.szwollf.Day05;

public class PracticeFor {
    public static void main(String[] args) {
        for (int i=1;i<10;i++){
            System.out.println(i);
        }
        for (int i=9;i>0;i--){
            System.out.println(i);
        }
        for (int i=9;true;i--){//一般不写成死循环,容易宕机
            System.out.println(i);
        }
    }
}

while循环

语法:while(布尔表达式){ 循环体 }

和if条件语句很像

package com.szwollf.Day05;

public class PracticeWhile {
    public static void main(String[] args) {
        int i=1;
        while(i<10){
            System.out.println(i);
            i++;
        }
    }
}

//死循环,不建议这么写

package com.szwollf.Day05;

public class PracticeWhile {
    public static void main(String[] args) {
        int i=1;
        while(true){
            System.out.println(i);
            i++;
        }
    }
}

 

do-while循环

语法: do{ 循环体 } while(布尔表达式);

package com.szwollf.Day05;

public class PracticeWhile {
    public static void main(String[] args) {
        int i=1;
        do {
            System.out.println(i);
            i++;
        }while(i<10);
    }
}

 

while和do-while区别?

while先判断,后执行循环体

do-while先执行循环体,再去判断

十、continue break return

continue 结束当次循环

break结束当前循环

return结束当前方法

package com.szwollf.Day05;

public class PracticeCBR {
    public static void main(String[] args) {
            System.out.println("程序开始");
            for (int i=1;i<=10;i++){
                if(i==5){
                    //continue;//结束当次循环
                    // break;//结束当前for,结束switch
                    return; //结束当前方法
                }
                System.out.println(i);
            }

            System.out.println("程序结束!");
    }
}

 

posted @ 2019-09-13 21:51  Wollf  阅读(204)  评论(0)    收藏  举报