Java学习笔记(二)--各种运算符 键盘录入数据 各种语句

/和%的区别

1./:除法,得到商,符号相同为正,符号不同为负。
2.%:取余,得到余数,被除数符号为正,余数为正;被除数符号为负,余数为负。


++和–运算符

1.作用:自增自减运算符,++就是加一,–就是减一。
2.++和–在运算的时候,在操作数前面,先自增,再操作;
在操作数后面,先运算,再自增。

class OperatorDemo(
    public static void main(){
        int a = 3;
        System.out.println(a); //3
        a++;
        System.out.println(a); //4
        ++a;
        System.out.println(a); //5
        int b = a++;
        System.out.println(b); //5
        System.out.println(a); //6
        int c = ++a;
        System.out.println(c); //7
        System.out.println(a); //7
}
}

赋值运算符

1.基本:=
2.扩展:+=,-=
扩展的复制运算符隐含了强制类型转换:

int a = 10;
a+=5;
a=(a的数据类型)(a+5;

关系运算符

1.关系运算符:==,!=,>,<,>=,<=
2.注意:
-比较运算符的结果肯定为布尔值;
-=是赋值,==才是比较是否相等

class OperatorDemo2{
    public static void main(String[] args){
        int a = 10;
        if(a==10){
        System.out.println(a);
        }
        if(a=3){}//这里就会报错
    }
}

逻辑运算符

1.逻辑运算符:&,|,!,^,&&,||
2.注意:逻辑运算符用于连接关系表达式
3.功能
&:有false则结果为false
|:有true则结果为true
!:改变结果,取反
^:相同false,不同true
&&:与&结果一样,但是&&具有短路效果,当&&左边为false时,它的右边不执行
||:与|结果一样,但是&&具有短路效果,当&&左边为true时,它的右边不执行

public class OperatorDemo3{
    public static void main(String[] args) {
        int a = 10;
        int b = 20;
        int c = 30;
        //&运算两边连接的布尔值,只要有一个为false整体结果就为fasle
        System.out.println((a>c)&(a>b));//false&false=false
        System.out.println((a<c)&(a<b));//true&true=true
        System.out.println((a>c)&(a<b));//false&true=fasle
        System.out.println((a<c)&(a>b));//true&false=false


        System.out.println("-----------------------");
        //|运算两边连接的布尔值,只要有一个为true就为true
        System.out.println((a>c)|(a>b));//false|false=false
        System.out.println((a<c)|(a<b));//true|true=true
        System.out.println((a>c)|(a<b));//false|true=true
        System.out.println((a<c)|(a>b));//true|false=true

        System.out.println("-----------------------");
        //!运算,falsetruetruefalse
        System.out.println(!(a>c));


        System.out.println("-----------------------");
        //^运算两边链接的布尔值,相同为false,不同为true
System.out.println((a>c)^(a>b));//false^false=false
        System.out.println((a<c)^(a<b));//true^true=fasle
        System.out.println((a>c)^(a<b));//false^true=true
        System.out.println((a<c)^(a>b));//true^false=true
    }

}

下面是&&与||的短路效果演示代码:

public class OperatorDemo4 {
    public static void main(String[] args) {
        int a = 10;
        int b = 20;
        int c = 30;

        System.out.println((a>c)&&(a>b));//false&&false=false
        System.out.println((a<c)&&(a<b));//true&&true=true
        System.out.println((a>c)&&(a<b));//false&&true=fasle
        System.out.println((a<c)&&(a>b));//true&&false=false

        System.out.println("-----------------------");
        //|运算两边连接的布尔值,只要有一个为true就为true
        System.out.println((a>c)||(a>b));//false||false=false
        System.out.println((a<c)||(a<b));//true||true=true
        System.out.println((a>c)||(a<b));//false||true=true
        System.out.println((a<c)||(a>b));//true||false=true

        System.out.println("----------------------");

        int x = 3;
        int y = 4;
        //System.out.println(x++>3&&y++>4);
        //false&&   =fasle,&&会存在一个短路效果,前面链接的布尔值为fasle,
        //整体就为fasle,所以后面的判断不执行
        System.out.println(x);//4
        System.out.println(y);//4


        System.out.println(x++>3||y++>4);
        //||运算链接的布尔值,如果前面的布尔值为true,连接的整体结果就为true,后面的不执行
        System.out.println(x);//4
        System.out.println(y);//5
    }

}

三元运算符

1.格式: ? :
(比较表达式)?表达式1:表达式2;
2.执行流程:
如果比较表达式结果为true,运算后的结果为表达式1;
如果比较表达式结果为false,运算后的结果为表达式2。
获取三个数中最大值代码:

class OperatorDemo5{
    public static void main(String[] args){
        int a = 10;
        int b = 20;
        int c = 15;
        int d = (((a>b)?a:b)?c)?((a>b)?a:b):c;
        System.out.println(d); //20
    }
}

键盘录入数据

键盘录入数据三步曲:
1.导包:import java.util.Scanner;
2.创建键盘录入对象:Scanner sc = new Scanner(System.in);
3.获取键盘录入数据:int a = sc.nextInt();

package com.edu_01;
//1.导包
import java.util.Scanner;
public class ScannerDemo {
    public static void main(String[] args) {
        //2.创建键盘录入对象
        Scanner sc = new Scanner(System.in);

        //3.获取键盘录入数据,程序在此阻塞,等待接受键盘录入
        int num = sc.nextInt();
        System.out.println(num);
    }

}

if语句

1.if语句格式1:

if(比较表达式){
    语句体;
}

执行流程:首先判断比较表达式看其结果是true还是false,如果是true就执行语句体,如果是false就不执行语句体。
2..if语句格式2:

if(比较表达式){
    语句体1;
}else{
    语句体2;
}

执行流程:首先判断关系表达式看其结果是true还是false,如果是true就执行语句体1,如果是false就执行语句体2。
3..if语句格式3:

if(比较表达式1){
    语句体1;
}else if(比较表达式2{
    语句体2;
}else if(比较表达式3{
    语句体3;
}else{
    语句体n+1;
}

执行流程:首先判断关系表达式1看其结果是true还是false,如果是true就执行语句体1,如果是false就继续判断关系表达式2看其结果是true还是false,如果是true就执行语句体2,如果是false就继续判断关系表达式…看其结果是true还是false…如果没有任何关系表达式为true,就执行语句体n+1。

需求:键盘录入学生成绩,根据学生成绩判断,输出学生等级。
90-100 A
80-89 B
70-79 C
60-69 D
60以下 E

package com.edu_01;
//导包
import java.util.Scanner;

public class IfDemo3 {
    public static void main(String[] args) {
        //创建键盘录入对象
        Scanner sc = new Scanner(System.in);

        //获取键盘录入数据
        System.out.println("请输入你的学生成绩");
        int score = sc.nextInt();

        //拿到成绩使用if做判断
        if(score>=90&&score<=100){
            System.out.println("成绩等级是A");
        }else if(score>=80&&score<=89){
            System.out.println("成绩等级是B");
        }else if (score>=70&&score<=79) {
            System.out.println("成绩等级是C");
        }else if(score>=60&&score<=69){
            System.out.println("成绩等级是D");
        }else if (score>=0&&score<60) {
            System.out.println("不及格");
        }else {
            System.out.println("输入成绩不再考核范围内");
        }

    }

}

switch语句

1.格式:

switch(表达式){
    case1:
        语句体1breakcase2:
        语句体2break;
    …
    default:
        语句体n+1break;
}

2.执行流程:首先计算出表达式的值;其次,和case依次比较,一旦有对应的值,就会执行相应的语句,在执行的过程中,遇到break就会结束;最后,如果所有的case都和表达式的值不匹配,就会执行default语句体部分,然后程序结束掉。
3.注意:
-case后面只能是常量,不能是变量。
-多个case后面的值不能出现相同的。
-default可以省略,但是不建议。
-break可以省略,但是不建议。容易出现case穿透。
-default可以在任意位置,建议在最后。
-switch语句的结束条件
–遇到break
–执行到末尾
需求:键盘录入一个数字(1-7),输出对应的星期几。

package com.edu_01;
import java.util.Scanner;

public class SwitchDemo {
    public static void main(String[] args) {
        int a = 4;

        //创建键盘录入对象
        Scanner sc = new Scanner(System.in);

        //获取键盘录入数据
        System.out.println("请输入数字");
        int day = sc.nextInt();

        switch(day){
        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("您输入的数据不存在");
            break;
        }

    }

}

for循环

1.格式:

for(初始化语句;判断条件语句;控制条件语句){
    循环体语句;
}

2.执行流程:
-执行初始化语句
-执行判断条件语句
如果是true:就继续执行。
如果是false:就结束循环。
-执行循环体语句
-执行控制条件语句
-回到第二步

需求:请在控制台输出数据1-10。

for(int i=1i<=10;i++){
    System.out.println(i);
}

需求:请在控制台输出数据10-1。

for(int i=10i>0;i--){
    System.out.println(i);
}

需求:求出1-100之间偶数和。
分析:
如何判断数据是偶数。
x%2==0;

public class ForDemo {
    public static void main(String[] args) {
        int sum = 0;
        for(int i = 1;i<=100;i++){
            //取余操作,判断偶数
            if (i%2==0) {
                sum+=i;
            }
        }

        System.out.println(sum);
    }

}

while循环

1.格式:

初始化语句;
while(判断条件语句){
    循环体语句;
    控制条件语句;
}

2.执行流程:
-执行初始化语句
-执行判断条件语句
如果是true:就继续执行。
如果是false:就结束循环。
-执行循环体语句
-执行控制条件语句
-回到第二步

需求:请在控制台输出10次”HelloWorld” 。

public class WhileDemo {
    public static void main(String[] args) {
        //初始化语句
        int i = 0;
        //条件判断语句
        while(i<10){
            //循环语句
            System.out.println("helloworkd");
            //控制条件语句
            i++;
        }

    }

}

需求:求出1-100之间偶数和。

public static void main(String[] args){
    int i = 0;
    int sum = 0;
    while(i<=100){
        if(i%2==0){
        sum+=i;
        }
        i++;
    }
    System.out.println(sum);
}

do while语句

1.格式:

do{
    循环体语句;
    控制条件语句;
}while(判断条件语句);

2.执行流程:
-执行初始化语句
-执行循环体语句
-执行控制条件语句
-:执行判断条件语句
如果是true:就继续执行。
如果是false:就结束循环。
-回到第二步


break使用场景

1.使用场景:
-在switch语句中
-在循环语句中
2.遇到break,就中断整个循环;默认情况下,break只能中断它所属的那个循环。


continue使用场景

1.使用场景:在循环语句中。
2.遇到continue,退出本次循环。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值