Java期末复习!

本次复习从两道编程题入手(简单的99乘法表和一个冒泡排序)

首先99乘法表是由两个for循坏嵌套完成的,如下

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();
        }

我的第二步是复习了一个冒泡,定义BubbleSort类,然后新建Day23,话不多数,上代码

package 案例模型.六月;

public class BubbleSort {
    public static void sort(int array[]) {
        //i表示第几轮“冒泡”,j 表示“走访”到的元素索引。
        // 每一轮“冒泡”中,j 需要从列表开头“走访”到 array.length - 1 的位置。
        for (int i = 0; i < array.length - 1; i++) {
            for (int j = 0; j < array.length - 1 - i; j++) {
                if (array[j] > array[j + 1]) {
                    int temp = array[j];
                    array[j] = array[j + 1];
                    array[j + 1] = temp;
                }
            }
        }
    }
}
package 案例模型.六月;
import java.util.ArrayList;
import java.util.Arrays;

public class Day23 {
    public static void main(String[] args) {
        int[] array = new int[]{55, 33, 22, 66, 11, 44};
        //输出排序前的array数组
        System.out.print("排序前:");
        System.out.println(Arrays.toString(array));
        //调用BubbleSort类中的sort方法对array数组进行排序
        BubbleSort.sort(array);
        //输出冒泡排序后的array数组
        System.out.print("排序后:");
        System.out.println(Arrays.toString(array));
    }
}

 

第三步是基本数据类型

package 案例模型.六月;

/**
 * java基本数据类型
 */
public class Day25 {

    static byte b;//整型变量类型 分配最少字节 占8位
    static short s;//整型变量类型 分配两个字节 占16位
    static int i;//整型变量类型 分配四个字节 占32位
    static long l;//整型变量类型 分配八个字节 占64位
    static float f;//浮点类型变量 分配四个字节 占32位
    static double d;//double变量类型 分配八个字节 占64位
    static char c;//字符类型 分配2个字节 占16位
    static boolean bo;//布尔类型 有两个值为true false

    public static void main(String[] args) {
System.out.println(
"byte的大小:"+Byte.SIZE +";默认值:"+b +";数据范围:"+Byte.MIN_VALUE+" - "+Byte.MAX_VALUE); System.out.println("short的大小:"+Short.SIZE +";默认值:"+s +";数据范围:"+Short.MIN_VALUE+" - "+Short.MAX_VALUE); System.out.println("int的大小:"+Integer.SIZE +";默认值:"+i +";数据范围:"+Integer.MIN_VALUE+" - "+Integer.MAX_VALUE); System.out.println("long的大小:"+Long.SIZE +";默认值:"+l +";数据范围:"+Long.MIN_VALUE+" - "+Long.MAX_VALUE); System.out.println("float的大小:"+Float.SIZE +";默认值:"+f +";数据范围:"+Float.MIN_VALUE+" - "+Float.MAX_VALUE); System.out.println("double的大小:"+Double.SIZE +";默认值:"+d +";数据范围:"+Double.MIN_VALUE+" - "+Double.MAX_VALUE); System.out.println("char的大小:"+Character.SIZE +";默认值:"+c +";数据范围:"+Character.MIN_VALUE+" - "+Character.MAX_VALUE); System.out.println("boolean的大小:"+Byte.SIZE +";默认值:"+bo +";数据范围:"+Byte.MIN_VALUE+" - "+Byte.MAX_VALUE); } }

 

第四步变量类型

package 案例模型.六月;

public class Day26 {
    public void tomAge() {
        int age = 1;                       //先写一个构造函数,在这里面声明定义了age的值;
        age = age + 1;                     //每次运行就增加1;
        System.out.println("它的年龄是:" + age);    //最后输出它的年龄;
    }

    public static void main(String[] args) {       //先写一个main方法
        Day26 test = new Day26();          //new一个新的对象(空的)
        test.tomAge();

    }

}

 

第五步是运算符

package 案例模型.六月;
//算术运算符
public class Day27 {
    public static void main(String[] args) {

        int a = 20;
        int b = 10; //定义两个常量

        System.out.println(a + b); // 30
        System.out.println(a - b); // 10
        System.out.println(a * b); // 200
        System.out.println(a / b); // 2 除法和取模操作时,右操作数不能为0,否则会报出异常。如果3/2的话,它是整数类型,结果不会出现小数。
        System.out.println(a % b); // 0 --->模运算相当于数学中除法的余数
    }
}

自增/自减运算符 ++/--

这两种运算符有前置和后置之分。如果是单独使用,那么前置和后置是没有区别的,如果是混合使用:

int a = 1;
a++; // 后置++ 表示给a的值加1,此时a的值为2
System.out.println(a++); // 注意:后置++是先使用变量原来值,表示式结束时给变量+1,因此输出2
System.out.println(a); // 输出3
++a; // 前置++ 表示给a的值加1
System.out.println(++a); // 注意:前置++是先给变量+1,然后使用变量中的值,因此输出5
System.out.println(a); // 输出5

增量运算符+= -= *= %=

该种类型运算符操作完成后,会将操纵的结果赋值给左操作数。要注意只有变量才可以使用该运算符,常量不允许被修改,不能使用。

int a = 1;
a += 2; // 相当于 a = a + 2
System.out.println(a); // 输出3,其他的运算符类似

关系运算符
主要有六个: == != < > = ,其计算结果是 true 或者 false 。在Java中,只有true和false,不存在0表示假,非0表示真。
当需要多次判断时,不能连着写,比如:3 < a < 5,在C语言当中,是可以运行的,但是在Java当中会报错,需要写成3 < a && a < 5。

int a = 10;
int b = 20;
// 注意:在Java中 = 表示赋值,要与数学中的含义区分
// 在Java中 == 表示相等
System.out.println(a == b); // false
System.out.println(a != b); // true
System.out.println(a < b); // true
System.out.println(a > b); // false
System.out.println(a <= b); // true
System.out.println(a >= b); // false

运算符先到这,下次再详细总结一下

 

第六步是循坏(三种循坏结构)

while循环

语法:

while(循环条件){

循环体;

}

while循环先判断循环条件,如果条件成立,则执行循环体,循环完成后再判断一次循环条件,若成立,则继续执行循环体,直到循环条件不成立。

int i = 1;
    while (i < 5) {
        System.out.println(i);
        i++;
  }

do...while循环

语法:

do{

循环体;

}while(循环条件);

do...while循环先执行一次循环体,然后判断循环条件,如果条件成立,则继续执行循环体,直到循环条件不成立;注意:do...while循环,无论循环条件是什么(无论循环条件是否成立),都执行一次循环体。

int i = 1;
do {
    System.out.println(i);
    i++;
} while (i < 5);

for循环

语法:

for(循环变量;循环条件;改变循环变量){

循环体

}

for循环是开发中使用最多的循环,在使用for循环时,小括号中必须包含两个分号,如果循环条件成立,就执行循环体;循环体执行结束后改变循环变量,再判断循环条件,若成立,则继续执行循环体,直到循环条件不成立退出循环。

for(int i=0;i<=5;i++){
    System.out.println(i);
}

 

第七步条件分支(分为四种路线)

if(boolean//布尔表达式){

语句块----------有条件执行的语句

//如果布尔表达式为true将执行的语句

}

偶数的判断:
int num = 6; 
if(num%2==0){
    System.out.println(num+"是偶数");
}
System.out.println("执行完毕...");
 
//如果为真执行输出是偶数否则输出"执行完毕"
 
//输出结果为"6是偶数"

if...else结构:2条路

语法:

if(boolean//布尔表达式){

语句块1

//如果布尔表达式的值为true

}else{

语句块2

//如果布尔表达式的值为false

}

//偶数、奇数的判断:
int num = 5; 
if(num%2==0){
    System.out.println(num+"是偶数");
}else{
    System.out.println(num+"是奇数");
}
System.out.println("执行完毕...");
 
//输出结果为:
5是奇数
执行完毕

if...else if结构:多条路
这种语句可以检测到多种可能的情况。

语法:

if(布尔表达式 1){
//如果布尔表达式 1的值为true执行代码

}else if(布尔表达式 2){
//如果布尔表达式 2的值为true执行代码

}else if(布尔表达式 3){
//如果布尔表达式 3的值为true执行代码

}else {
//如果以上布尔表达式都不为true执行代码

}

public static void main(String[] args) {
        Scanner scan = new Scanner(System.in);//创建扫描仪
        System.out.println("请输入成绩:");
        double score = scan.nextDouble();//获取输入的小数
        
        if(score<0 || score>100){
            System.out.println("成绩不合法");
        }else if(score>=90){ //合法
            System.out.println("A-优秀");
        }else if(score>=80){
            System.out.println("B-良好");
        }else if(score>=60){
            System.out.println("C-中等");
        }else{
            System.out.println("D-不及格");
        }
    }

switch...case结构:多条路
语法:

switch(expression){
case value : //语句

break; //可选

case value : //语句

break; //可选

//你可以有任意数量的case语句

default : //可选

//语句

}

public static void main(String[] args) {
        Scanner scan = new Scanner(System.in);
        System.out.println("请选择功能: 1.取款 2.存款 3.查询余额 4.退卡");
        int command = scan.nextInt();
 
        switch(command){
            case 1:
                System.out.println("取款业务...");
                break;
            case 2:
                System.out.println("存款业务...");
                break;
            case 3:
                System.out.println("查询余额业务...");
                break;
            case 4:
                System.out.println("退卡业务...");
                break;
            default:
                System.out.println("输入错误");
        }
    }
//使用Scanner接收用户输入的数据:


//在使用Scanner前需要先导入包

import java.util.Scanner; //1.导入扫描仪
public class ScannerDemo {
public static void main(String[] args) {
Scanner scan = new Scanner(System.in); //2.新建一个扫描仪scan

int age = scan.nextInt(); //3.扫描一个整数并赋值给age
System.out.println("年龄为:"+age+");
}

}

 

第八步String类

 

class StringTest{
    public static void main(String[] args) {
        //最常用的方式
        String s1 = "我是中国人";
        System.out.println(s1);//我是中国人

        String s2 = new String("我是中国人");
        System.out.println(s2);//我是中国人

        char[] c = {'我' , '是', '中', '国', '人'};
        String s3 = new String(c);
        System.out.println(s3);//我是中果人

        String s4 = new String(c, 2, 3);
        System.out.println(s4);//中国人

        byte[] b = {65, 66 ,67, 68};
        String s5 = new String(b);
        System.out.println(s5);//ABCD

        String s6 = new String(b, 1, 2);
        System.out.println(s6);//BC

        StringBuffer sb1 = new StringBuffer("我是上海人");
        String s7 = new String(sb1);
        System.out.println(s7);//我是上海人

        StringBuilder sb2 = new StringBuilder("我是广东人");
        String s8 = new String(sb2);
        System.out.println(s8);//我是广东人
    }
}

 

 

最后补一个数组

// 变量声明
int num;
// 变量初始化
num = 10;
// 变量声明 + 初始化
int id = 1001;
 
// 数组声明
int[] ids;
// 静态初始化:数组的初始化和数组元素的赋值操作同时进行
ids = new int[]{1001,1002,1003,1004};
// 动态初始化:数组的初始化和数组元素的赋值操作分开进行
String[] names = new String[5];
 
// 错误的写法:
// int[] arr1 = new int[];
// int[5] arr2 = new int[5];
// int[] arr3 = new int[3]{1,2,3};
 
//也是正确的写法:
int[] arr4 = {1,2,3,4,5};// 类型推断
 
// 总结:数组一旦初始化完成,其长度就确定了。

感谢您的观看@一冲子

 

posted @ 2022-06-24 16:52  一冲子  阅读(92)  评论(0编辑  收藏  举报