Java培训班

it2026-08-22  1

Java培训班_Day_04_第一阶段_Java基础语法(四)

课程内容

循环结构方法

循环结构

while循环

1、while,关键字,用于声明定义while循环

2、格式: 初始化变量; while(逻辑表达式){ 循环语句体; 步进表达式; }

3、执行流程: (1) 执行初始化变量 (2) 执行逻辑表达式,如果为false,直接结束while循环 (3) 如果为true,执行循环语句体 (4) 执行步进表达式 (5) 回到步骤(2)

4、注意事项: (1) 不要忘记书写步进表达式 (2) while的小括号中,本质只能是布尔类型的值

代码示例:

package com..demo; public class Day_004_Demo_While { public static void main(String[] args) { int num = 1; while(num <= 10) { System.out.print(num + " "); num++; } } }

do…while 循环

1、do,关键字,用于声明定义do_while循环

2、定义格式: 初始化变量; do { 循环语句体; 步进表达式; } while(逻辑表达式);

3、执行流程: (1) 执行初始化变量 (2) 执行循环语句体 (3) 执行步进表达式 (4) 执行逻辑表达式,如果返回false,整个循环结束 (5) 如果返回true,回到步骤(2)

4、注意事项: for循环和while循环有可能一次都不执行,但是do_while循环至少能执行一次

代码示例:

package com..demo; public class Day_004_Demo_DoWhile { public static void main(String[] args) { int num = 10; do { System.out.println(num); num++; }while(num < 5); } }

死循环

1、死循环:无限循环,循环永不停止

2、定义格式: for(;😉 { 循环语句体; } while(true) { 循环语句体; }

3、死循环的使用场景: (1) 在格式上是死循环,在循环语句体的逻辑上如果达成了某些条件,就会使用某些手段让死循环发生跳转或者停止 (2) 在服务器的设计中,我们希望服务器永远运行下去,就需要使用死循环

代码示例:

package com..demo; public class Day_004_Demo_DeadCycle { public static void main(String[] args) { for(;;) { System.out.println("Java"); } } }

跳转语句

1、跳转语句:在循环中,可以结束循环、控制循环的语句

2、continue语句:结束本次循环继续下次循环

3、break语句:结束当前所在层次的循环

4、return语句:结束所在方法

5、System.exit(0);跳转语句:关停虚拟机

代码示例:

package com..demo; public class Day_004_Demo_Forward { public static void main(String[] args) { for (int i = 1; i <= 10; i++) { if (i % 2 == 0) { continue;//结束本次循环,继续下次循环 } System.out.println(i); } } }

嵌套循环

1、在一次大的循环中,每次循环的内容又是一循环

2、定义格式: for(初始化语句1; 逻辑表达式1; 步进表达式1) { for(初始化语句2; 逻辑表达式2; 步进表达式2) { 循环语句体; } }

3、执行流程: (1) 执行初始化语句1 (2) 执行逻辑表达式1,如果为false,就结束整个嵌套循环 (3) 如果为true,就执行内部循环的初始化语句2; (4) 执行逻辑表达式2,如果为false,内层循环结束,外层循环执行步进表达式1 (5) 如果返回true,执行循环语句体 (6) 执行步进表达式2 (7) 回到步骤(4) (8) 当内层循环完全结束 (9) 执行步进表达式1 (10) 回到步骤(2)

代码示例:

package com..demo; public class Day_004_Demo_Nest { 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(); } } }

代码示例:(九九乘法表打印)

package com.wanghong.homework; public class Day_003_Homework1 { public static void main(String[] args) { for(int a = 1; a <= 9; a++) { for(int b = 1; b <= a; b++) { System.out.print(b + "*" + a + "=" + a*b + "\t"); } System.out.println(); } } }

方法

概述

1、具有某些特定功能的代码段

2、将一段具有特定功能的代码,使用大括号包围起来,起一个名字,加上一些权限和修饰,就是方法。以后使用这一段代码,只需要书写方法的名字即可

3、好处: (1) 提高了代码的复用性 (2) 提高了代码的封装性,大括号中的内容括号外无法访问也就无法修改,保证了数据的安全 (3) 简化了代码的设计思维难度

方法的定义

1、定义格式: 修饰符 返回值类型 方法名称(参数列表) { 方法体; return语句; }

2、说明: (1) 修饰符:目前全部写成public static (2) 返回值类型:方法其实表示的是一段功能,既然是功能,执行结束后就有可能产出结果,也有可能不产出结果。当产出结果的时候,结果肯定是一个数据,既然是数据就有类型,数据是什么类型,返回值类型就写成什么类型,当然,前提是产出的结果需要使用return语句返回的时候,返回值类型才写成对应的类型。如果方法的产出结果不适用return语句进行返回,或者方法没有任何产出结果的时候,返回值类型书写为:void,含义:无返回值类型 (3) 合法标识符即可,要遵循小驼峰原则 (4) 参数列表:方法在执行的时候,需要一些数据,就在参数列表上写出需要的数据,由外界将这些数据传入 (5) 方法体:具体的业务逻辑 (6) return语句:结束方法并且将结果返回给调用者

方法的调用

1、格式:直接书写方法名称和对应的参数列表即可 方法名称(实际参数);

2、方法的调用方式: (1) 直接调用:直接书写方法名称调用方法,让方法执行 (2) 输出调用:调用有返回值的方法,将具体返回的结果进行输出 (3) 赋值调用:调用有返回值的方法,将返回结果赋值给对应类型的变量,做后续处理

3、形式参数:简称形参,方法用于向外界声明,执行功能的时候,需要几个哪些类型的数据

4、实际参数:简称实参,方法真正要被调用执行的时候,传递给方法的实实在在的数据

5、在传递实际参数的时候,实际参数要和形式参数的个数、数据类型、顺序做到一一对应

代码示例:

package com.wanghong.classroom; public class Day_004_04_Method { public static void main(String[] args) { System.out.println(getSum(10,20)); getSum1(11, 22); } public static int getSum(int a, int b) { int sum = a + b; return sum; } public static void getSum1(int a, int b) { System.out.println(a + b); } }

方法的注意事项

1、方法的定义: (1) 方法不能嵌套定义 (2) 方法与方法之间的关系都是平行的 (3) 方法定义的先后没有区别,方法执行的先后只取决于调用的顺序 (4) 方法可以嵌套调用,方法可以自己调用自己

2、方法的参数列表: (1) 形式参数:可有可无 (2) 实际参数:对应形参,可有可无

3、return语句: (1) return语句表示结束方法,并且还能够将方法产出的结果返回给调用者 (2) 如果方法没有具体的返回内容,就只能写成return;此时return就仅仅表示结束方法,那么就可以省略,对应的返回值类型就必须是void (3) 如果方法有具体的返回内容,就写成return 返回值;此时return就表示结束方法并且返回结果给调用者。返回值类型是什么类型的数据,那么返回值类型就写成对应的类型 (4) return返回结果给调用者,谁调用方法,return就将结果返回给谁

方法的练习

代码示例(求两个数中的较大数)

package com..demo; import java.util.Scanner; public class Day_004_Demo_Method { public static void main(String[] args) { Scanner sc = new Scanner(System.in); System.out.println("请录入两个整数:"); System.out.println(getMax(sc.nextInt(), sc.nextInt())); } public static int getMax(int a, int b) { int result = a > b ? a : b; return result; } }

方法的重载

1、重载:Overload,超载

2、方法的重载:在同一个类中,方法名称相同,参数列表不同,与返回值类型无关

3、注意事项: (1) 在重载中,所有方法必须要在同一个类中才能谈得上是重载 (2) 在重载中,所有的方法都具有一个名字,仅仅通过名称不能区分方法,唯一区分的标 志就是参数列表 (3) 参数列表不同:

参数个数不同参数类型不同参数的顺序不同

4、重载的好处: (1) 没有重载:具有相同功能、相同逻辑但是参数列表不同的方法,需要使用不同的方法 名称,难以记忆 (2) 有重载:对于具有相同功能、相同逻辑但是参数列表不同的方法,使用同一个方法名 称,可以有效的表示这一类方法,调用方法的时候,传入不同的参数,会自动匹配参 数对应的方法,从而减轻了记忆方法名称的压力

5、我们学过的重载: print、println方法,对于任意数据类型的数据都能够打印,就是因为使用了方法的重载, 虽然具有同一个方法名称,但是具有不同的参数列表,不同的参数传递后,会匹配到对应 的那个方法,进行数据的输出打印

代码示例:

package com..demo; public class Day_004_Demo_Overload { public static void main(String[] args) { //计算三个double数的和 System.out.println(getSum(1.1, 2.2, 3.3)); } //计算两个整数的加法 public static void getSum(int a, int b) { System.out.println(a + b); } //计算三个整数的加法 public static int getSum(int a, int b, int c) { return a + b + c; } //计算四个整数的加法 public static void getSum(int a, int b, int c, int d) { System.out.println(a + b + c + d); } //计算两个小数的加法 public static void getSum(double a, double b) { System.out.println(a + b); } //计算三个小数的加法 public static double getSum(double a, double b, double c) { return a + b + c; } //计算一个整数和一个小数的加法 public static double getSum(int a, double b) { return a + b; } //计算一个小数和一个整数的加法 public static void getSum(double a, int b) { System.out.println(a + b); } }

今天的课后练习

山上有一口缸可以装50升水,现在有15升水。老和尚叫小和尚下山挑水,每次可以挑5升。 问:小和尚要挑几次水才可以把水缸挑满

代码示例:

package com.wanghong.homework; public class Day_004_Homework_01 { public static void main(String[] args) { int count = 0; for(int b = 15; b < 50; b += 5) { count++; } System.out.println(count); } }

输出1—100内前5个可以被3整除的数

代码示例:

package com.wanghong.homework; /* 2.输出1—100内前5个可以被3整除的数 */ public class Day_004_Homework_02 { public static void main(String[] args) { int count = 0; for(int num = 1; num <= 100; num++) { if(num % 3 == 0) { System.out.println(num); count++; } if(count == 3) { return; } } } }

根据用户输入的一个整数,输出一个数字组成的图案 例如:

请输入一个1-9之间的整数5 55555 4444 333 22 1

1 22 333 4444 55555

代码示例:

package com.wanghong.homework; import java.util.Scanner; public class Day_004_Homework_03 { public static void main(String[] args) { System.out.println("请输入一个1-9之间的整数:"); Scanner sc = new Scanner(System.in); int num = sc.nextInt(); if(1 <= num && num <= 9) { for(int a = num;a >= 1; a--) { for(int b = 1; b <= a; b++) { System.out.print(a); } System.out.println(); } System.out.println(); for(int i = 1; i <= num; i++) { for(int j = 1; j <= i; j++) { System.out.print(i); } System.out.println(); } }else { System.out.println("请输入合理数字!"); } } }

定义一个方法,可以打印指定行数和列数的星星矩阵

代码示例:

package com.wanghong.homework; import java.util.Scanner; public class Day_004_Homework_04 { public static void main(String[] args) { System.out.println("请输入要打印的行和列:"); Scanner sc = new Scanner(System.in); getStar(sc.nextInt(), sc.nextInt()); } public static void getStar(int a, int b) { for(int i = 1; i <= a; i++) { for(int j = 1; j <= b; j++) { System.out.print("*"); } System.out.println(); } } }

分析以下需求,并用代码实现:(封装成方法) (1)打印1-m之间的所有素数及个数 (2)每行输出n个满足条件的数,之间用空格分隔

代码示例:

package com.wanghong.homework; import java.util.Scanner; public class Day_004_Homework_05 { public static void main(String[] args) { System.out.println("请输入你要打印的最大范围和每行最大数:"); Scanner sc = new Scanner(System.in); getprime(sc.nextInt(), sc.nextInt()); } public static void getprime(int i, int j) { int count = 0; System.out.println(i + "中的素数为:"); for(int a = 2; a <= i; a++) { for(int b = 2; b <= a; b++) { if(a == b) { System.out.print(a + " "); count++; if(count % j == 0) { System.out.println(); } } if(a % b == 0) { break; } } } System.out.println(); System.out.println("总共" + count + "个素数"); } }

总结:今天的课程到这里就结束了,方法在这里相比前几天学的东西稍微有点难度,在掌握好基础及时的同时一定记得多多练习代码,代码写多了思维也就有了,才能为以后学习更深层次的东西打好基础!

最新回复(0)