Java 05 (Java流程控制+前期总结)

今天看了一下我的java03的笔记,发现后面的一大部分都被删了,可能是因为写了4天才发出来,文章内容太长了,我我发送了几次都没成功,最后成功发出了,也没检查,可惜了。

控制语句

选择结构语句
if
if else
switch

循环结构语句
for
while
do while

改变控制顺序
break
continue

if 条件判断语句

/*
关于java语句当中的if语句,属于选择结构(分支,条件控制)
    if 语句的四种编写方式:
第一种方式:
    if (布尔表达式){
        java语句;
        java语句;
        java语句;
        java语句;
        java语句;
        java语句;
        .......
    }
第二种方式:
    if(布尔表达式){
         java语句;
         java语句;
         java语句;
         java语句;
         ....
    }else{
         java语句;
         java语句;
         java语句;
         ....
    }
第三种方式:
    if(布尔表达式){
        java语句;
        java语句;
        ....
    }else if (布尔表达式){
        java语句;
        java语句;
        ....
    }else if (布尔表达式){
        java语句;
        java语句;
        ....
    }....
第四种方式:
    if(布尔表达式){
        java语句;
        java语句;
        ....
    }else if (布尔表达式){
        java语句;
        java语句;
        ....
    }else if (布尔表达式){
        java语句;
        java语句;
        ....
    }else{
        java语句;
        java语句;
        ....
    }

第二种 和 第四种 都带有else分支,可以保证100%会有分支执行。

所有控制语句都可以嵌套,但是注意{}缩进对齐。
if(){
    if(){
        }
     }
else{
    }

if语句的分支中只有一条java语句的话,大括号可以省略不写。
if (true/false){
    一条java语句;
};
等价于:
if (true/false)
    一条java语句;

 */



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

        //所在位置,5公里有kfc,就过去吃午饭
        //公里数,判断语句
        int distance = 6;
        //判断语句
        if (distance < 5){
            System.out.println("去kfc吃午饭!");
        }
    }
}

设计学生成绩评判

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

        // 根据学生成绩,判定学生成绩等级
        // 范围是[0,100]
        // [90-100] A
        // [80-90]  B
        // [70-80]  C
        // [60-70]  D
        // [0-60]   E
        //判断语句
        double score;
        score = 60.0;
        if (score <=100 || score >= 90) {
            System.out.println('A');
        } else if(score >= 80) {
            System.out.println('B');
        } else if(score >= 70) {
            System.out.println('C');
        } else if(score >= 60) {
            System.out.println('D');
        }else if(score >= 0) {
            System.out.println('E');
        } else {
            System.out.println("对不起,您提供的考生成绩不合法!");
        }
    }
}

改进:

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

        // 根据学生成绩,判定学生成绩等级
        // 范围是[0,100]
        // [90-100] A
        // [80-90]  B
        // [70-80]  C
        // [60-70]  D
        // [0-60]   E
        //判断语句
        int score = 20;
        String grade = "该考生的成绩等级是 E等级";
        if (score <0 || score >= 100) {
            grade = "对不起,您提供的考生成绩不合法!";
        } else if(score >= 90) {
            grade = "该考生的成绩等级是 A等级";
        } else if(score >= 80) {
            grade = "该考生的成绩等级是 B等级";
        } else if(score >= 70) {
            grade = "该考生的成绩等级是 C等级";
        }else if(score >= 60) {
            grade = "该考生的成绩等级是 D等级";
        }else {
            grade = "该考生的成绩等级是 E等级";
        }
        System.out.println(grade);
    }
}

System.out.println():负责向控制台输出「从内存到控制台,输出的过程,从内存出来」
接受用户键盘输入,从"键盘"到"内存"。『输入的过程,到内存中去』

java 键盘输入

public class Java_01 {
    public static void main(String[] args){
    // 创建键盘扫描对象
        java.util.Scanner s = new java.util.Scanner(System.in);
    // 调用Scanner对象的next()方法开始接受用户键盘输入
    // 程序执行到这里会停下来,等待用户的输入
    // 当用户输入的时候,并且最终敲回车键的时候,键入的信息会自动赋值给userInputContent
    // 程序执行到这里,用户的输入信息已经保存到内存中了。


//        String userInputContent = s.next();
//    // 将内存中的数据输入到控制台
//        System.out.println("您输入了:" + userInputContent);


    // 接受数字「以整数型int的形式来接受」
        int num = s.nextInt();
        System.out.println("您输入的数字是:" + num);
        System.out.println("计算结果:"+(num + 100));
    }
}

年龄判断:

系统给定人的年龄,根据年龄,判断人处于哪个生命阶段,年龄范围:[0-150]
[0-5] 幼儿
[6-10] 少儿
[11-18] 青少年
[19-35] 青年
[36-55] 中年
[56-150] 老年

public class Java_01 {
    public static void main(String[] args){
        //1.接受键盘输入:年龄「必须是数字」
        java.util.Scanner s = new java.util.Scanner(System.in);
        //设置提示信息
//        System.out.println("请输入您的年龄:"); //换行
        System.out.print("请输入您的年龄:"); //不换行
        int age = s.nextInt();
        //2. 根据需求进行业务逻辑判断
        String str = "老年";
        if (age < 0|| age>150){
            str = "您提供的年龄不合法,年龄值需要在0~150之间!";
            System.out.println(str);
            System.exit(0);
        }else if(age <= 5){
            str = "幼儿";
        }else if(age <= 10){
            str = "少年";
        }else if(age <= 18){
            str = "青少年";
        }else if(age <= 35){
            str = "青年";
        }else if(age <= 55){
            str = "中年";
        }
        System.out.println("您出入生命周期的"+str+"阶段");
    }
}

另外一种笨办法:
Java 05 (Java流程控制+前期总结)

判断当前的天气:
    当外边下雨:
        带雨伞:
        判断性别:
            男: 带黑伞
            女: 带花伞
    当外边晴天:
        判断天气温度:
            30以上:
            判断性别:
            男: 戴墨镜
            女: 擦防晒
要求:
天气,温度,性别,都需要从键盘输入。
天气状况: 1下雨, 0 晴天
温度: 数字
性别: 1男,0 女
*/

public class Java_01 {
    public static void main(String[] args){
        System.out.println("欢迎使用本系统");
        System.out.println("说明1: 1表示下雨,0表示晴天");
        System.out.println("说明2: 1表示男,0表示女");
        System.out.println("说明3: 温度为数字");

        //接受性别
        java.util.Scanner s = new java.util.Scanner(System.in);
        System.out.print("请输入性别:");
        int sex = s.nextInt();

        //接收天气的状况
        System.out.print("请输入当前天气状况:");
        java.util.Scanner s1 = new java.util.Scanner(System.in);
        int weather = s1.nextInt();
        //判断天气状况
        if(weather == 1){
            //下雨天
//            System.out.println("下雨天");
            if(sex == 1){
                System.out.println("带一把大黑伞");
            }else if(sex == 0){
                System.out.println("带一把大花伞");
            }else{
                System.out.println("对不起,您的性别不存在!");
            }
        }else if(weather == 0){
            //晴天
//            System.out.println("晴天");
            //接受温度
            System.out.print("请输入当前天气状况温度:");
            int tem = s.nextInt();
            if(tem > 30){
                if (sex == 1) {
                    System.out.println("戴墨镜");
                }else if(sex == 0){
                    System.out.println("擦防晒霜");
                }else {
                    System.out.println("对不起,您的性别不存在!");
                }
            }
        }else{
            System.out.println("对不起,您输入的天气状况不存在!");
        }
    }
}

Java 05 (Java流程控制+前期总结)

单行if else可以省略{}括号

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

        boolean sex = true;
        if(sex){
            System.out.println('男');
        }else{
            System.out.println('女');
        }
}
public class Java_01 {
    public static void main(String[] args) {

        boolean sex = true;
        sex = false;
        if (sex) System.out.println('男');
        else System.out.println('女');
    }
}

总结

标识符:自己有权利命名的单词。
包括:类名,方法名,变量名,接口名,常量名。
标识符命名规则: 数字 字母 下划线 $ 不能以下划线开始。
命名规范:类名,接口名: 首字母大写。
遵循驼峰命名规则。
见名知意。
变量名和方法名:首字母小写。

关键字: 特殊含义的字。
不可以做标识符。
eg: public
Java 05 (Java流程控制+前期总结)
Java 05 (Java流程控制+前期总结)

字面值: 就是数据。 eg:10 ; 100
就是所谓的数据,存储在内存当中。

数据分门别类:整数型,布尔型,浮点数型,字符型,字符串型。

变量:内存中的一块空间。
三部分组成: 数据类型 变量名 字面值。
内存中,存储数据的最基本单元。

作用域: 变量的有效范围。
出了大括号就不认识了。

根据出现的位置,分为 成员变量和 局部变量。
局部变量:只在方法体中管用的对象,出了括号不认识了。
成员变量(全局变量):在方法体之外,类体之内的 所 声明的变量。

变量必须先声明,再赋值。
声明: 数据类型 变量值;
赋值: 变量值 = 字面值;
声明+赋值: int i = 10;

在同一个作用域中,变量之间不可以重名。
一行声明多个变量 int a,b,c = 1,2,3;

数据类型:对数据进行归类。
根据数据类型分配内存大小。
java中分为两大数据类型: 基本数据类型 和 引用数据类型。
基本数据类型:4大类 8小类。
4大类: 整数,浮点,字符,布尔。
8小类:byte,int,short,long,float,double, char,boolean.
取值范围:
byte -128 - 127
int -21473648- 2147364847
short -32768 - 32767
long
double
char 0-65535
boolean true 和 false

Java 05 (Java流程控制+前期总结)

二进制
十进制
ASCII表:字符型 通过 ASCII表 转换成 数字
a 97
A 65

gbk18030
unicode编码
utf8
java中采用的就是utf8编码

数据类型详解:
char类型 可以存一个中文字
char类型 占2个字节

转义字符/
整数型 byte,int,short,long
占用字节:1,2,4,6
表示形式(3种):
十进制
八进制 以0开始
十六进制 以0x开始

整数型字面值:
10,20,30当做int类型处理
long类型字面值要在后面加L
21463648L
如果整数字面值,没有超过byte,short,int,char的取值范围
这个整数型的字面值可以直接赋值给 byte,short,int,char对象。

浮点型:float 和 double。
3.1默认当做double处理。
在后面加f,当做float类型处理。eg: 3.1f
double精度不够,使用引用数据类型的 java.math.BigDecimal

java中,提供了强大的库,有 原码 和 字节码
字节码位置
原码位置

布尔类型
只有两种:true和false

自动类型转换:小向大转
强制类型转换:大向小转,需要加强制类型转换符,可能损失精度。

byte short char 做运算,先转成int,再运算。

所以类型进行运算,先转成大的,再统一运算。

如果整数字面值,没超过 byte,int,short,char,可以直接将其赋值,不用考虑强制类型转换。

运算符
算术运算符
++i 和 i++
关系运算符
布尔运算符(逻辑运算符)
&& || & | !
位运算符
赋值运算符
+=
字符串连接运算符
+
条件运算符
A?B:C
如果A成立走B
不成立走C
三目/三元/条件运算符
其他运算符
Java 05 (Java流程控制+前期总结)
流程控制
if判断
四种:
if()…
if()…else…
if()…elseif()…
if()…elseif()… else…

上一篇:Oracle12.2+ cdb数据库统一检查


下一篇:中科大2021年计算机系统期末回忆版