day04-循环语句与方法
一、循环
1、 循环语句概述
可以在满足循环条件的情况下,反复执行某一段代码 这段被重复执行的代码被称为循环体语句 当反复执行这个循环体时,需要在合适的时候把循环判断条件修改为false,从而结束循环 否则循环将一直执行下去,形成死循环
2、循环分类
- for 循环
- while 循环
- do … while循环
3、for循环
循环格式
for循环语句格式:
for(初始化语句; 判断条件语句; 控制条件语句) {
循环体语句;
}
格式解析
循环语句的组成
初始化语句:
一条或者多条语句,这些语句完成一些初始化操作。 只执行一次
判断条件语句:
这是一个boolean 表达式,这个表达式能决定是否执行循环体。
循环体语句:
这个部分是循环体语句,也就是我们要多次做的事情。
控制条件语句:
这个部分在一次循环体结束后,下一次循环判断条件执行前执行。通过用于控制循环条件中的变
量,使得循环在合适的时候结束。
循环执行顺序
执行流程:
1:执行初始化语句(只做一次)
2:执行判断条件语句,看其结果是true还是false
如果是false,循环结束。
如果是true,继续执行。
3:执行循环体语句
4:执行控制条件语句
5:回到2继续
4、while循环
(1)while,关键字,用于声明定义while循环
(2)格式:
初始化变量;
while (逻辑表达式) {
循环语句体;
步进表达式;
}
(2)执行流程:与for循环大致一样,只不过判断语句与循环体的位置不同
(3)注意事项:
- 不要忘记写步进表达式
- while的小括号中,本质只能是Boolean类型的值
int j = 1;
while(j<=10){
System.out.println(j);
j++;
}
(4)使用条件
当循环结束后想使用循环变量的时候 一般使用 while循环
当 知道循环次数的时候 一般使用for循环
当不知道循环次数的时候 一般使用 while循环 什么都不清楚的时候 使用for循环
(5)练习
public class Demo03 {
public static void main(String[] args) {
int start = 1;
int end = 884800;
int count = 0;
while (start<=end){
start *=2;
count++;
}
System.out.println(count);
}
}
5、do…while
(1)do,关键字,用于声明定义do_while循环
(2)定义格式:
初始化变量;
do {
循环语句体;
步进表达式;
}while(逻辑表达式)
(3)执行流程:循环体至少执行一次
(4)注意事项:
for循环和while循环有可能一次都不执行,但是do_while循环至少能执行一次
int i = 1;
do{
i++;
System.out.println("hello"+i);
}while (i<0);
}
6、三种循环的区别:
三种循环语句其实都可以完成一样的功能,也就是说可以等价转换,但还是有小区别的: do…while循环至少会执行一次循环体。 for循环和while循环只有在条件成立的时候才会去执行循环体 使用三个循环的顺序: 当不知道循环次数 使用 while ,其他使用for【do while不用】 如果什么都清楚,就用for循环
7、死循环
注意事项:
写程序优先考虑for循环,再考虑while循环,最后考虑do…while循环。
如下代码是死循环
while(true){
}
for(;;){
}
8、循环嵌套
package demo0713;
import java.util.Random;
import java.util.Scanner;
/**
* ClassName: demo10
* Description:
*
* @Author GSAU-ShiPeng
* @Create 2023/7/13 18:55
* @Version 1.0
*/
public class demo10 {
public static void main(String[] args) {
//获取一个随机数
int random = (int) (Math.random() * 100) + 1;
//记录猜的次数
int count = 1;
//实例化Scanner
Scanner scan = new Scanner(System.in);
System.out.println("请输入一个整数(1-100):");
int guess = scan.nextInt();
while (guess != random) {
if (guess > random) {
System.out.println("猜大了");
} else if (guess < random) {
System.out.println("猜小了");
}
System.out.println("请输入一个整数(1-100):");
guess = scan.nextInt();
//累加猜的次数
count++;
}
System.out.println("猜中了!");
System.out.println("一共猜了" + count + "次");
}
}
二、方法
1、概述
1、具有某些特定功能的代码段
2、将一段具有特定功能的代码,使用大括号包围起来,起一个名字,加上一些权限和修饰,就是方法。 以后使用这一段代码,只需要书写方法的名字即可
3、好处:
(1) 提高了代码的复用性
(2) 提高了代码的封装性,大括号中的内容括号外无法访问也就无法修改,保证了数据的安全
(3) 简化了代码的设计思维难度
2、方法的定义
1、定义格式
修饰符 返回值类型 方法名称(参数列表) {
方法体;
return语句;
}
2、说明:
(1) 修饰符:目前全部写成public static
(2) 返回值类型:用于限定返回值的数据类型 [目前 基本数据类型+String]
(3) 方法名 : 合法标识符即可,要遵循小驼峰原则
(4) 参数列表:方法在执行的时候,需要一些数据,就在参数列表上写出需要的数据,由外界将这些数 据传入
(5) 方法体:具体的业务逻辑 (6) return语句:结束方法并且将结果返回给调用者
package demo0713;
import java.util.Scanner;
/**
* ClassName: demo08
* Description:
*
* @Author GSAU-ShiPeng
* @Create 2023/7/13 14:51
* @Version 1.0
*/
public class demo08 {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.print("请输入第一个数字:");
int a = scanner.nextInt();
System.out.println();
System.out.print("请输入第二个数字:");
int b = scanner.nextInt();
System.out.println("请输入第三个数字:");
int c = scanner.nextInt();
System.out.println("两个数字之和为:" + sum(a,b,c));
}
public static int sum(int a,int b,int c){
return a+b+c;
}
}
3、方法调用
1、格式:直接书写方法名称和对应的参数列表即可 方法名称(实际参数);
2、方法的调用方式:
(1) **直接调用**:直接书写方法名称调用方法,让方法执行
(2) 输出调用:调用有返回值的方法,将具体返回的结果进行输出
(3) 赋值调用:调用有返回值的方法,将返回结果赋值给对应类型的变量,做后续处理
3、形式参数:简称形参,方法用于向外界声明,执行功能的时候,需要几个哪些类型的数据
4、实际参数:简称实参,方法真正要被调用执行的时候,传递给方法的实实在在的数据
5、在传递实际参数的时候,实际参数要和形式参数的个数、数据类型、顺序做到一一对应
方法的调用方式:
(1) **直接调用**:直接书写方法名称调用方法,让方法执行
(2) 输出调用:调用有返回值的方法,将具体返回的结果进行输出
(3) 赋值调用:调用有返回值的方法,将返回结果赋值给对应类型的变量,做后续处理
3、形式参数:简称形参,方法用于向外界声明,执行功能的时候,需要几个哪些类型的数据
4、实际参数:简称实参,方法真正要被调用执行的时候,传递给方法的实实在在的数据
5、在传递实际参数的时候,实际参数要和形式参数的个数、数据类型、顺序做到一一对应