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};// 类型推断 // 总结:数组一旦初始化完成,其长度就确定了。
感谢您的观看@一冲子