Java开发实践02-0123

一、今日内容

1、数据类型

(1)数据类型的分类:基本数据类型,引用数据类型

(2)基本数据类型:8种

    ① 整型:byte、short、int、long(8个字节,但是如果数据的长度较小的话【正负21亿范围内】,long类型占4个字节,当数据大于正负21亿时,自动转为8字节。

    ② 浮点类型:float、double

    ③ 布尔类型:boolean

    ④ 字符类型:char

(3)引用数据类型:数组、类、枚举、接口…

(4)类型转换

    ① 从小到大:自动转换

    ② 从大到小:强制兴型转换〔可能会丢失精度】

2、常用运算符

(1)算术运算符:加、减、乘、除、取余

(2)宇符串连接符:+

    当+的任意一边有字符串时,做连接操作

(3)关系运算符:大于(>)、小于(<)、等于(==)、大于等于(>=)、小于等于(<=)、不等于(!=),结果都为布尔类型

(4)赋值运算符:=

(5)逻辑运算符:与(&&)、或(||)、非(!)

(6)逻辑与:当且仅当&&两边都为真时,结果才为真;

(7)逻辑或:任意一边为真时,结果都为真;

(8)非:当表达式为真时,结果为假,表达式为假是,结果为真。

(9)逻辑运算符与、或的短路特性

    ① 逻辑与运算符:当&&前面的表达式为假时,后面不做判断

    ② 逻镊或运算符:当 || 前面的表达式为真时,后面不做判断

(10)自增减运算符:加加、减减

    ① 加加分为前++和后++

    ② 减减分为前--和后--

(12)三目运算符:条件表达式 ? 表达式1 : 表达式2

    ① 若条件表达式为真 = > 执行表达式1

    ② 若条件表达式为假 = > 执行表达式2

3、顺序、分支、循环结构

在java中,任何复杂逻辑,都可以使用顺序、分支、循环三种结构进行描述。

4、分支结构

(1)概念:在java中,当需要使用条件判断时,则需要使用分支结构。

(2)if分支

    ① 语法格式:

if(条件表达式){

语句块;

}
    ② 执行流程:

若条件表达式成立,则执行语句块;

若条件表达式不成立,则执行语句块后面的代码。

(3)if-else分支

    ① 语法格式:

if{(条件表达式){

语句块1;

}else{

语句块2;

}

    ② 执行流程:

若条件表达式成立,执行语句块1;

若条件表达式不成立,执行语句块2。

(4)if-else -if -else 分支

    ① 语法格式:

if (条件表达式1) {

语句块1;

}else if  (条件表达式2) {

语句块2;

}else if (条件表达式n) {

语句块n;

}

    ② 执行流程:

若条件表达式1成立,执行语句块1;

若条件表达式2成立,执行语句块2;

若条件表达式n成立,执行语句块n;

(5)switch-case 分支

    ① 概念:switch case 语句用来判断—个交量与一系列值中某个值是否相等,每个值称为一个分支。

    ② switch语句的原則:

      a. switch语句中的变量类型可以是:byte、short、int或者char。从Java7开始,switch支持字符,String类型了,同时case标签必须为字符串常量或字面量。

      b. switch语句可以拥有多个case语句,每个case后面跟一个要比较的值和冒号。

      c. case语句中的值的数据类型必须与变量的数据类型相同,而目只能是常量或者字面常量。当变量的值与case语句的值相等时,那么case语句之后的语句开始执行,直到break语句出现才会跳出switch语句。当遇到break语句时,switch语句终止。

      d. 程序跳转到switch语句后面的语句执行。case语句不必须要包含break语句。

      e. 如果没有break语句出现,程序会继续执行下一条case语句,直到出现break语句。

      f. switch语句可以包含一个default分支,该分支一般是switch语句的最后一个分支(可以在任何位置,但建议在最后一个)。

     g. default在没有case语句的值和交量值相等的时候执行。defauIt分支不需要break语句。

    ③ switch case 执行时,一定会先进行匹配,匹配成功返回当前case的值,再根据是否有break,判断是否继续输出,或是跳出判断。

    ④ 语法格式:

switch(表达式){

case 1: 语句块1

break; //可选

case 2: 语句块2

break;

case n:语句块n

break;

default: 语句块

}

    ⑤ 执行流程:

若表达式满足case 1执行case 1中的语句块;

若表达式满足case 2执行case 2中的语句块;

若表达式满足case n执行case n中的语句块;

都不满足,执行default中的语句块。

5、循环结构

(1)for循环

    ① 语法格式:

for(初始表达式; 条件表达式; 修改初始表达式){

循环体;

}

    ② 执行流程:

初始表达式 = > 条件表达式【若成立】=>循环体; = > 修改初始表达式 = > 条件表达式 =>若成立。。。。

若不成立 = > 跳出循环体;

    ③ break和continue

break:表示结束当前语句块,在循环中表示结束当前循环体;

continue:在循环中表示跳出当前循环体,继续执行下一次循环;

(2)while循环

    ① 语法格式:

初始表达式;

while(条件表达式){

循环体;

修改初始表达式;

}

    ② 执行流程:

初始表达式 = > 条件表达式 = > 若成立 =>执行循环体 = > 修改初始表达式 = > 条件表达式 = >。。。。。

若不成立 = > 不进入循环体,执行后边的代码

(3)do-while循环

    ① 语法格式:

初始表达式;

do{

循环体;

修改初始表达式

}while(条件表达式);

    ② 执行流程:

(4)双重for循环

    ① 语法格式:

for(初始表达式1; 条件表达式2; 修改初始表达式3){

    for(初始表达式4; 条件表达式5; 修改初始表达式6){

        循环体;

    }

}

    ② 执行流程:

初始表达式1 = > 条件表达式2 = > 若成立 = > 初始表达式4 =>条件表达式5 = > 循环体 = > 修改初始表达式6 =>条件表达式5 = > 若成立 = > 循环体 = > 修改初始表达式6 = > 条件表达式 = > 循环体... = > 不成立 = > 修改初始表达式3 =>条件表达式2 => 初始表达式4.… = > 直到条件表达还是2不成立 = > 跳出循环体

若不成立 = > 修改表达式3 = > 条件表达式2 = > 成立【不成立】

若不成立 =>跳出循环体,执行后面的代码

    ③ 注意事项:

      a. 外层循环用来控制行数,内层循环用于控制列数;

      b. 外层循环的变量改动一次,内层循环需要从头到尾执行一遍;(外层循环执行一次,内层循环需要跑一圈);

      c. 今后开发中,如果遇到几行几列时,使用双重循环,循环的嵌套不宜超过3层。

二、代码

1、Fall

要求用户输入下落时间(整数),并按照公式0.5*9.8*t*t来计算下落的位移并打印出来。其中小数数据使用double类型声明的变量来记录。

​
import java.util.Scanner;
/**
 * @Author: ydh 2303
 * @description: 要求用户输入下落时间(整数),并按照公式0.5*9.8*t*t来计算下落的位移并打印出来。
 *               其中小数数据使用double类型声明的变量来记录。
 * @Date: 2024/1/23 9:38
 * @Version: 1.0
 */
public class Fall {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        System.out.println("请输入一个下落时间(整数)t:");
        int t = sc.nextInt();
        double x = 0.5 * 9.8 * t * t;
        System.out.println("下落位移为:" + x);
    }
}

​

运行结果:

2、Identify01

提示用户输入姓名和年龄,并打印。

​
import java.util.Scanner;
/**
 * @Author: ydh 2303
 * @description: 提示用户输入姓名和年龄,并打印
 * @Date: 2024/1/23 8:29
 * @Version: 1.0
 */
public class Identify01 {
    public static void main(String[] args) {
        // 提示用户输入姓名和年龄
        // 键盘扫描器     表示创建一个Scanner 类型的引用(scanner) 指向Scanner类型的对象,其中System.in可以看成一个键盘
        Scanner sc = new Scanner(System.in);
        // 提示用户输入姓名和年龄
        System.out.println("请输入你的姓名:");
        String name = sc.next();

        System.out.println("请输入你的年龄:");
        int age = sc.nextInt();

        System.out.println("我叫" + name + ",今年" + age + "岁了!");
    }
}

​

运行结果:

3、Identify02

提示用户输入学号、班级和座右铭,并打印。

​
import java.util.Scanner;
/**
 * @Author: ydh 2303
 * @description: 提示用户输入学号、班级和座右铭,并打印
 * @Date: 2024/1/23 8:50
 * @Version: 1.0
 */
public class Identify02 {
    public static void main(String[] args) {
        // 提示用户输入学号、班级和座右铭
        // 键盘扫描器     表示创建一个Scanner 类型的引用(scanner) 指向Scanner类型的对象,其中System.in可以看成一个键盘
        Scanner sc = new Scanner(System.in);
        // 提示用户输入学号、班级和座右铭
        System.out.println("请输入你的学号:");
        String number = sc.next();

        System.out.println("请输入你的班级:");
        String meclass = sc.next();

        System.out.println("请输入你的座右铭:");
        String moto = sc.next();

        System.out.println("我的学号是" + number + ",我在" + meclass + "班,我的座右铭是" + moto);
    }
}

​

运行结果:

4、Arithmetic

算术运算:加、减、乘、除、取余(包:com.operator)。

​
package com.operator;
/**
 * @Author: ydh 2303
 * @description: 算术运算:加、减、乘、除、取余
 * @Date: 2024/1/23 9:49
 * @Version: 1.0
 */
public class Arithmetic {
    public static void main(String[] args) {
        //加减乘除取余
        int a = 3; // 赋值运算符
        int b = 5;
        System.out.println(a + b); // 8
        System.out.println(b - a); // 2
        System.out.println(a * b); // 15
        System.out.println(b / a); // 1
        System.out.println(b % a); // 2
    }
}

​

运行结果:

5、Add01

a++、++a(包:com.operator)。

​
package com.operator;
/**
 * @Author: ydh 2303
 * @description: a++、++a
 * @Date: 2024/1/23 10:00
 * @Version: 1.0
 */
public class Add01 {
    public static void main(String[] args) {
        int a = 3;
        int b = a++;
        System.out.println("b = " + b); // 3
        int c = ++a;
        System.out.println("c = " + c); // 5
    }
}

​

运行结果:

6、Reduction01

a--、--a(包:com.operator)。

​
package com.operator;
/**
 * @Author: ydh 2303
 * @description: a--、--a
 * @Date: 2024/1/23 10:03
 * @Version: 1.0
 */
public class Reduction01 {
    public static void main(String[] args) {
        int a = 6;
        int b = a--;
        System.out.println("b = " + b); // 6
        int c = --a;
        System.out.println("c = " + c); // 4
    }
}

​

运行结果:

7、ThreeEyes

使用三目运算符判断用户输入的是整数是负数、正数还是零。(包:com.operator)

​
package com.operator;
import java.util.Scanner;
/**
 * @Author: ydh 2303
 * @description: 使用三目运算符判断用户输入的是整数是负数、正数还是零。
 * @Date: 2024/1/23 10:06
 * @Version: 1.0
 */
public class ThreeEyes {
    public static void main(String[] args) {
        //提示用户输入一个数
        Scanner sc = new Scanner(System.in);
        System.out.println("请输入一个数:");
        int number = sc.nextInt();
        //使用三目运算符对用户输入的数进行判断
        String s = number > 0 ? "你输入的是一个整数" : number == 0 ? "你输入的是0" : "你输入的是一个负数";
        System.out.println(s);
    }
}

​

运行结果:

8、Reverse

提示用户输入一个三位数的正数,然后进行逆序处理再打印。(包:com.operator)

​
package com.operator;
import java.util.Scanner;
/**
 * @Author: ydh 2303
 * @description: 提示用户输入一个三位数的正数,然后进行逆序处理再打印
 * @Date: 2024/1/23 10:13
 * @Version: 1.0
 */
public class Reverse {
    public static void main(String[] args) {
        //提示用户输入一个三位数的正数
        Scanner sc = new Scanner(System.in);
        System.out.println("请输入一个三位数的正数:");
        int number = sc.nextInt();
        //逆序处理并打印
        System.out.println("逆序排序后的结果:");
        System.out.print(number % 10);
        System.out.print((number % 100) / 10);
        System.out.print(number / 100);
    }
}

​

运行结果:

9、If01

用if语句判断年龄。

​
import java.util.Scanner;
/**
 * @Author: ydh 2303
 * @description: 用if语句判断年龄
 * @Date: 2024/1/23 10:48
 * @Version: 1.0
 */
public class If01 {
    public static void main(String[] args) {
        //提示用户输入年龄
        Scanner sc = new Scanner(System.in);
        System.out.println("请输入你的年龄:");
        int age = sc.nextInt();
        // 用if语句判断年龄
        if(age >= 18) {
            System.out.println("你可以浏览网页");
        }
        System.out.println("每天开心快乐");
    }
}

​

运行结果:

10、If02

使用if分支结构,提示用户输入两个数,求最大值。

​
import java.util.Scanner;
/**
 * @Author: ydh 2303
 * @description: 使用if分支结构,提示用户输入两个数,求最大值。
 * @Date: 2024/1/23 10:51
 * @Version: 1.0
 */
public class If02 {
    public static void main(String[] args) {

//        //提示用户输入两个数
//        Scanner sc =new Scanner(System.in);
//        System.out.println("请输入两个数:");
//        float n1 = sc.nextFloat();
//        float n2 = sc.nextFloat();
//        if(n1 > n2) {
//            System.out.println("最大值为:" + n1);
//        } if(n1 < n2) {
//            System.out.println("最大值为:" + n2);
//        } else {
//            System.out.println("二者相等,最大值为:" + n1);
//        }

        //提示用户输入两个数
        Scanner sc =new Scanner(System.in);
        System.out.println("请输入第一个数:");
        int num1 = sc.nextInt();
        System.out.println("请输入第二个数:");
        int num2 = sc.nextInt();

//        //对用户输入的两个数进行判断,求最大值
//        if(num1 > num2) {
//            System.out.println("最大值:" + num1);
//        }
//        if(num1 < num2) {
//            System.out.println("最大值:" + num2);
//        }

        int max = num1;
        if(num1 <= num2) {
            max =num2;
        }
        System.out.println("最大值:" + max);
    }
}

​

运行结果:

11、If03

用if语句判断成绩是否及格。

​
import java.util.Scanner;
/**
 * @Author: ydh 2303
 * @description: 用if语句判断成绩是否及格
 * @Date: 2024/1/23 11:06
 * @Version: 1.0
 */
public class If03 {
    public static void main(String[] args) {
        //提示用户输入成绩
        Scanner sc = new Scanner(System.in);
        System.out.println("请输入你的成绩:");
        double score = sc.nextDouble();
        if(score >= 60) {
            System.out.println("恭喜你,及格了,通过考试了!");
        } else {
            System.out.println("恭喜你,挂科了,继续努力!");
        }
    }
}

​

运行结果:

12、If04

使用if-else分支结构,提示用户输入一个整数,判断是负数还是非负数。

import java.util.Scanner;
/**
 * @Author: ydh 2303
 * @description: 使用if-else分支结构,提示用户输入一个整数,判断是负数还是非负数。
 * @Date: 2024/1/23 11:15
 * @Version: 1.0
 */
public class If04 {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        System.out.println("请输入一个整数:");
        int number = sc.nextInt();
        if(number >= 0) {
            System.out.println("您输入的整数是一个非负数。");
        } else {
            System.out.println("您输入的整数是一个负数。");
        }
    }
}

运行结果:

13、If05

提示用户输入身份信息进行购票,判断身份信息是军人、学生、还是普通人。

import java.util.Scanner;
/**
 * @Author: ydh 2303
 * @description: 提示用户输入身份信息进行购票,判断身份信息是军人、学生、还是普通人。
 * @Date: 2024/1/23 11:33
 * @Version: 1.0
 */
public class If05 {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        System.out.println("请输入身份信息(军人、学生、还是普通人):");
        String identify = sc.next();
        //对用户输入的身份信息进行判断
        if("军人".equals(identify)) {
            System.out.println("由于您是军人,享受免票!");
        } else if("学生".equals(identify)) {
            System.out.println("由于您是学生,享受半价票!");
        } else {
            System.out.println("由于不是学生和军人,请购买全价票!");
        }
    }
}

运行结果:

14、If06

提示用户输入高考成绩,判断学校学历。

import java.util.Scanner;
/**
 * @Author: ydh 2303
 * @description: 提示用户输入高考成绩,判断学校学历。
 *               650以上:清北大学
 *               550-650:985高校
 *               450-550:211高校
 *               350-450:一本二本
 *               350以下:专科或选择复读
 * @Date: 2024/1/23 11:41
 * @Version: 1.0
 */
public class If06 {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        System.out.println("请输入高考成绩:");
        int number = sc.nextInt();
        if(number >= 650) {
            System.out.println("您的学历:可上清北大学");
        } else if(number >=550 && number <650) {
            System.out.println("您的学历:可上985高校");
        } else if(number >=450 && number <550) {
            System.out.println("您的学历:可上211高校");
        } else if(number >=350 && number <450) {
            System.out.println("您的学历:可上一本二本院校");
        } else {
            System.out.println("您的学历:可上专科或选择复读");
        }
    }
}

运行结果:

15、Switch01

提示用户输入业绩排名,判断去哪儿玩儿。

import java.util.Scanner;
/**
 * @Author: ydh 2303
 * @description: 提示用户输入业绩排名,判断去哪儿玩儿。
 * @Date: 2024/1/23 15:49
 * @Version: 1.0
 */
public class Switch01 {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        System.out.println("请输入你的业绩排名:");
        int num = sc.nextInt();
        switch (num){
            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("省内游");
            default:
                System.out.println("游什么游,加班");
        }
    }
}

运行结果:

16、Switch02

提示用户输入月份,判断当月天数(不考虑闰年)

import java.util.Scanner;
/**
 * @Author: ydh 2303
 * @description: 提示用户输入月份,判断当月天数(不考虑闰年)
 * @Date: 2024/1/23 15:54
 * @Version: 1.0
 */
public class Switch02 {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        System.out.println("请输入月份:");
        int month = sc.nextInt();
//        switch (month){
//            case 1:
//                System.out.println("1月有31天");
//                break;
//            case 2:
//                System.out.println("2月有28天");
//                break;
//            case 3:
//                System.out.println("3月有31天");
//                break;
//            case 4:
//                System.out.println("4月有30天");
//                break;
//            case 5:
//                System.out.println("5月有31天");
//                break;
//            case 6:
//                System.out.println("6月有30天");
//                break;
//            case 7:
//                System.out.println("7月有31天");
//                break;
//            case 8:
//                System.out.println("8月有31天");
//                break;
//            case 9:
//                System.out.println("9月有30天");
//                break;
//            case 10:
//                System.out.println("10月有31天");
//                break;
//            case 11:
//                System.out.println("11月有30天");
//                break;
//            case 12:
//                System.out.println("12月有31天");
//                break;
//            default:
//                System.out.println("输入月份错误!");
//        }
        switch (month){
            case 1:
            case 3:
            case 5:
            case 7:
            case 8:
            case 10:
            case 12:
                System.out.println("当月有31天");
                break;
            case 2:
                System.out.println("当月有28天");
                break;
            case 4:
            case 6:
            case 9:
            case 11:
                System.out.println("当月有30天");
                break;
            default:
                System.out.println("输入月份错误!");
        }
    }
}

运行结果:

17、For01

打印1-10之间的数字

/**
 * @Author: ydh 2303
 * @description: 打印1-10之间的数字
 * @Date: 2024/1/23 16:16
 * @Version: 1.0
 */
public class For01 {
    public static void main(String[] args) {
        for(int i = 1; i <= 10; i++) {
            System.out.print(i + " ");
        }
    }
}

运行结果:

18、For02

1-100之间的偶数

/**
 * @Author: ydh 2303
 * @description: 1-100之间的偶数
 * @Date: 2024/1/23 16:18
 * @Version: 1.0
 */
public class For02 {
    public static void main(String[] args) {
        for(int i = 1; i <= 100; i++) {
            if(i % 2 == 0) {
                System.out.print(i + " ");
            }
        }

//        for(int i = 1; i <= 10; i++) {
//            if(i == 5) {
//                break; // 跳出循环
//            }
//            System.out.print(i + " ");
//        }
//
//        for(int i = 1; i <= 10; i++) {
//            if(i == 5) {
//                continue; // 继续循环
//            }
//            System.out.print(i + " ");
//        }
    }
}

运行结果:

19、While01

while循环

/**
 * @Author: ydh 2303
 * @description: while循环
 * @Date: 2024/1/23 16:33
 * @Version: 1.0
 */
public class While01 {
    public static void main(String[] args) {
        int i = 1;
        while(i <= 10) {
            System.out.print(i + " ");
            i++;
        }
    }
}

运行结果:

20、While02

跑圈 跑完一圈提示用户是否还能跑,如果不能跑结束。

import java.util.Scanner;
/**
 * @Author: ydh 2303
 * @description: 跑圈  跑完一圈提示用户是否还能跑,如果不能跑结束。
 * @Date: 2024/1/23 16:35
 * @Version: 1.0
 */
public class While02 {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        int i = 1;
        while(true) {
            System.out.println("你已经跑了" + i + "圈,是否继续?");
            String str = sc.next();
            if("否".equals(str)) {
                System.out.println("不行了,跑不动了!");
                break;
            } else if("是".equals(str)) {
                i++;
                System.out.println("加油,加油!正在跑第" + i + "圈。");
            }
        }
    }
}

运行结果:

21、DoWhile01

dowhile循环

/**
 * @Author: ydh 2303
 * @description: dowhile循环
 * @Date: 2024/1/23 17:12
 * @Version: 1.0
 */
public class DoWhile01 {
    public static void main(String[] args) {
        int i = 1;
        do{
            System.out.print(i + " ");
            i++;
        }while(i <= 10);
    }
}

运行结果:

22、DoubleFor01

双层for循环

/**
 * @Author: ydh 2303
 * @description: 双层for循环
 * 打印出:*
 *       **
 *       ***
 *       ****
 *       ******
 * @Date: 2024/1/23 17:23
 * @Version: 1.0
 */
public class DoubleFor01 {
    public static void main(String[] args) {
        for (int i = 1; i <= 5; i++){
            for (int j = 1; j <= i; j++){
                System.out.print("* ");
            }
            System.out.println();
        }
    }
}

运行结果:

23、DoubleFor02

九九乘法表

/**
 * @Author: ydh 2303
 * @description: 九九乘法表
 * @Date: 2024/1/23 17:27
 * @Version: 1.0
 */
public class Doublefor02 {
    public static void main(String[] args) {
        for (int i = 1; i <= 9; i++){
            for (int j = 1; j <= i; j++){
                System.out.print(i + "*" + j + "=" + (i * j) + "\t");
            }
            System.out.println();
        }
    }
}

运行结果:

三、总结

今日内容敲的代码比较多,学习复习回顾了数据类型,运算符,顺序、分支、循环结构体,内容虽多但也比较清楚简单,相较于之前增加了难度,越到后面难度可能还会增大,那就希望自己能继续努力学习!

  • 19
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值