JAVASE 基础模块五
循环
-
死循环
while (true) { System.out.println("bzpg,tcdj");} for (; ; ) { System.out.println("bzpg,tcdj");}
-
如果有多层循环嵌套 可以给循环起名字 通过循环的名字来结束循环
break xx;
-
转义字符
- ‘\t’ tab键的位置
- ‘\n’ 换行
-
快捷键
- 快速生成循环语句 100.for.i
- 反向 10.forr转义字符’\t’ tab键的位置’\n’ 换行
-
控制跳转语句的分类
public class LianXi { public static void main(String[] args) { for (int x = 1; x <= 10; x++) { if (x % 3 == 0) { continue; //break; // System.out.println("bzpg 天长地久");} System.out.println("第" + x + "次输出:" + "bzpg 天长地久");}}}
-
break 中断 跳出循环
运行结果: 第1次输出:bzpg 天长地久 第2次输出:bzpg 天长地久 进程已结束,退出代码0
3时break
-
continue 继续 越过此次循环进行下一顺延
运行结果: 第1次输出:bzpg 天长地久 第2次输出:bzpg 天长地久 第4次输出:bzpg 天长地久 第5次输出:bzpg 天长地久 第7次输出:bzpg 天长地久 第8次输出:bzpg 天长地久 第10次输出:bzpg 天长地久 进程已结束,退出代码0
越过369
-
多次输出
运行结果: 第1次输出:bzpg 天长地久 第2次输出:bzpg 天长地久 bzpg 天长地久 第3次输出:bzpg 天长地久 第4次输出:bzpg 天长地久 第5次输出:bzpg 天长地久 bzpg 天长地久 第6次输出:bzpg 天长地久 第7次输出:bzpg 天长地久 第8次输出:bzpg 天长地久 bzpg 天长地久 第9次输出:bzpg 天长地久 第10次输出:bzpg 天长地久 进程已结束,退出代码0
重复369
-
方法
-
概念
- 方法就是完成特定功能的代码块在很多语言中都有函数的定义,但是在咱们JAVA语言中,我们将其称之为方法。
-
格式
修饰符 返回值类型 方法名(参数类型 参数名1,参数类型 参数名2 ....){ 方法体; return 返回值; } (1): 修饰符 public static (2): 返回值类型 用于限定返回值的数据类型 (3): 方法名 方便调用方法 (4): 参数类型 限定调用方法时传入参数的数据类型 (5): 参数名 是一个变量,接收调用方法时传入的参数 (6): 方法体 完成功能的代码 (7): return 结束方法以及返回方法指定类型的值 (8): 返回值 就是功能的结果,由return带回
-
注意事项
-
方法不调用不执行
-
方法与方法是平级关系,不能嵌套定义
-
方法定义的时候参数之间用逗号隔开
-
方法调用的时候不用在传递数据类型
-
在调用带有参数的方法时 必须传入跟形参类型,形参个数一致的实参
-
实参可以传变量 也可以传常量
-
调用方法时,传过来的实际参数
-
形参是int 可以传byte short int 当然类型一致 永远不会出错
-
方法的返回值类型 void就是该方法没有明确返回值类型
-
一旦我们明确了这个方法的返回值类型 那么这个方法必须使用return关键字 返回一个与明确类型一致的值
-
return 结束方法并返回结果
public class FangFa2 { public static void main(String[] args) { int a = add(20, 30); System.out.println(a); } public static int add(int x, int y) { int sum = x + y; System.out.println(sum); return sum;}}
运行结果: 50 50 进程已结束,退出代码0
-
-
当我们调用这个方法时 如果这个方法有返回值 我们就可以接受这个返回值
-
这个方法返回什么类型 就用什么类型接受
- 设计无参无返回值的方法
- 设计无参有返回值的方法
- 设计有参无返回值的方法
- 设计有参有返回值的方法
-
当设计一个方法时 进行考虑这个方法要不要参数 要几个参数 参数类型是什么 要不要返回值 返回值类型是什么
-
当你的返回值类型是void时 return可以不写
-
获取两个数的最大值
public static void main(String[] args) { Scanner sc = new Scanner(System.in); System.out.println("请输入第一个数"); double v = sc.nextDouble(); Scanner sc1 = new Scanner(System.in); System.out.println("请输入第二个数"); double v1 = sc.nextDouble(); double x= getMax(v,v1); System.out.println(x);} public static double getMax(double x,double y) { return x>y?x:y;}
运行结果: 请输入第一个数 3.15 请输入第二个数 3.16 3.16 进程已结束,退出代码0
-
判断两个数是否相等 需要返回值
public class XiangTong { public static void main(String[] args) { Scanner sc = new Scanner(System.in); System.out.println("请输入第一个数"); double v = sc.nextDouble(); Scanner sc1 = new Scanner(System.in); System.out.println("请输入第二个数"); double v1 = sc.nextDouble(); boolean c=equal(v,v1); System.out.println(c); } public static boolean equal(double x,double y) { return x==y;}}
运行结果: 请输入第一个数 2.14 请输入第二个数 2.14 true 进程已结束,退出代码0
-
根据输入的数字打印对应的乘法表
public class ChengFa { public static void main(String[] args) { Scanner sc = new Scanner(System.in); System.out.println("请输入需要打印的乘法表位数"); int v = sc.nextInt(); chengFa(v);} public static void chengFa(int a) { for(int i=0;i<=a;i++){ for(int c=1;c<i+1;c++){ System.out.print(c+"*"+i+"="+i*c+"\t\t");} System.out.println();}}}
运行结果: 请输入需要打印的乘法表位数 7 1*1=1 1*2=2 2*2=4 1*3=3 2*3=6 3*3=9 1*4=4 2*4=8 3*4=12 4*4=16 1*5=5 2*5=10 3*5=15 4*5=20 5*5=25 1*6=6 2*6=12 3*6=18 4*6=24 5*6=30 6*6=36 1*7=7 2*7=14 3*7=21 4*7=28 5*7=35 6*7=42 7*7=49 进程已结束,退出代码0
-
根据输入的数字输出*
public class Xing { public static void main(String[] args) { Scanner sc = new Scanner(System.in); System.out.println("请输入行数"); int v = sc.nextInt(); Scanner sc1 = new Scanner(System.in); System.out.println("请输入列数"); int v1 = sc1.nextInt(); xing(v,v1);} public static void xing(int a,int b) { for(int i=1;i<=a;i++){ for(int c=1;c<=b;c++){ System.out.print("*");} System.out.println();}}}
运行结果: 请输入行数 6 请输入列数 6 ****** ****** ****** ****** ****** ****** 进程已结束,退出代码0
外循环控制行数,内循环控制列数
-
-
方法重载 允许一个类中定义多个同名方法 只要他们的参数个数或者参数类型不一样就可以
-
如果有重载 自动匹配哪个方法更合适
-
求多个数相加
public class ChongZai { public static void main(String[] args) { //求多个数相加 add(10, 20); add(23.55, 66); add(1, 2, 3); } public static int add(int x, int y) { int sum = x + y; System.out.println(sum); return sum; } public static int add(int x, int y, int c) { int sum = x + y + c; System.out.println(sum); return sum;} public static double add(double x, int y) { double sum = x + y; System.out.println(sum); return sum; } public static int add(int x, int y, int c, int g) { int sum = x + y + c + g; System.out.println(sum); return sum; }}
运行结果: 30 89.55 6 进程已结束,退出代码0
-
-
数组
-
数组 可以看作一个容器 可以用来存储多个同一种数据类型的元素
-
数组可以存储基本数据类型 也可以存储引用数据类型
-
定义数组的语法格式
int[] arr=new int[5]; int arr1[]=new int[5];
-
在JAVA中 数组必须初始化才能使用
-
数组的初始化 就是要在内存中为数组开辟空间 并为数组中的元数进行赋值
-
动态初始化数组语法:由我们指定数组的长度 由系统为数组的元素复制默认值
public class ShuZu { public static void main(String[] args) { int[] arr = new int[5]; for (int i = 0; i < 5; i++) { System.out.print(arr[i]);} System.out.println(); int arr1[] = new int[5]; double[] x1 = new double[7]; for (int i = 0; i < 7; i++) { System.out.print(x1[i]);} System.out.println(); boolean[] x2 = new boolean[7]; for (int i = 0; i < 7; i++) { System.out.print(x2[i]); }}}
6 就是我们指定的数组长度
运行结果: 00000 0.00.00.00.00.00.00.0 falsefalsefalsefalsefalsefalsefalse 进程已结束,退出代码0
-
静态初始化数组语法
public class JinTai { public static void main(String[] args) { int[] arr = new int[]{10, 30, 55, 66, 88, 5}; System.out.println(arr.length); for (int i = 0; i < arr.length; i++) { System.out.print(arr[i] + "\t\t"); } double[] arr2 = {1, 55.8, 8.3, 88.2, 66, 6, 5, 58, 55}; System.out.println(arr2.length); for (int i = 0; i < arr2.length; i++) { System.out.print(arr2[i] + "\t\t"); }}}
运行结果: 6 10 30 55 66 88 5 9 1.0 55.8 8.3 88.2 66.0 6.0 5.0 58.0 55 进程已结束,退出代码0
-
-
数组的遍历
-
通过for循环来进行数组的遍历
快捷方式 arr2.length.fori
//反向遍历 public class JinTai { public static void main(String[] args) { double[] arr2 = {1, 55.8, 8.3, 88.2, 66, 6, 5, 58, 55}; System.out.println(arr2.length); for (int i = arr2.length - 1; i >= 0; i--) { System.out.print(arr2[i] + "\t\t"); } }}
运行结果: 9 55.0 58.0 5.0 6.0 66.0 88.2 8.3 55.8 1.0 进程已结束,退出代码0
-
调用方法求数组的最大最小值
public class JinTai {
public static void main(String[] args) {
double[] arr2 = {1, 55.8, 8.3, 88.2, 66, 6, 5, 58, 55};
getMaxMin(arr2);}
public static void getMaxMin(double arr2[]) {
double max = arr2[0];
double min = arr2[0];
System.out.println(arr2.length);
for (int i = arr2.length - 1; i >= 0; i--) {
if (max < arr2[i]) {
max = arr2[i];}
if (min > arr2[i]) {
min = arr2[i];}
System.out.print(arr2[i] + "\t\t");}
System.out.println();
System.out.println("最大值" + max);
System.out.println("最小值" + min);
System.out.println("okay");}}
运行结果:
9
55.0 58.0 5.0 6.0 66.0 88.2 8.3 55.8 1.0
最大值88.2
最小值1.0
okay
进程已结束,退出代码0
数组的反转 原数组内操作
public class FanZhuan {
public static void main(String[] args) {
double[] arr2 = {1, 55.8, 8.3, 88.2, 66, 6, 5, 58, 55};
fanZhuan(arr2); }
public static void fanZhuan(double arr2[]) {
System.out.println(arr2.length);
double m;
for (int i = 0; i < arr2.length / 2; i++) {
m = arr2[i];
arr2[i] = arr2[arr2.length - 1 - i];
arr2[arr2.length - 1 - i] = m;}
System.out.println();
for (int i = 0; i < arr2.length; i++) {
System.out.print(arr2[i] + "\t\t"); }}}
运行结果:
9
55.0 58.0 5.0 6.0 66.0 88.2 8.3 55.8 1.0
进程已结束,退出代码0