JavaSE——Day4——循环语句,控制跳转语句,方法

版权声明:------------------------------这个世界上只有一种成功,就是按照自己想要的方式度过一生--------------------------- https://blog.csdn.net/qq_44238142/article/details/86688443

循环结构概述

一、循环结构

概述

循环语句可以在满足循环条件的情况下,反复执行某一段代码,这段被重复执行的代码被称为循环体语句,当反复执行这个循环体,需要在合适的时候把循环判断条件修改为false,从而结束循环,否则循环将一直执行下去,形成死循环。

分类

for循环;
while循环;

for语句

for循环语法: for(初始化表达式语句;判断条件语句;控制条件语句){
循环体语句;
}
执行流程:
1、 执行初始化表达式语句;
2、 执行判断条件语句,返回值如果是true,就执行循环体语句;返回值如果是false,就结束循环;
3、 执行控制条件语句;
4、 回到2继续执行。
注意:初始化表达式语句只执行一次

案例一:

//输出HelloWorld十次
public class MyFor{
	public static void main(String[] args ){
	
		for (int i = 0;i < 10;i++){
			System.out.println("HelloWorld");	
		}
		
	}	
}

案例二:
需求:请在控制台输出数据1-10

import java.util.Scanner;
public class MyFor2{
	public static void main(String [] args){
		Scanner sc = new Scanner(System.in);
		for(int i = 0;i < 10;i ++){
			System.out.println("请输入第"+i+"个数字");
			int num = sc.nextInt();
		}
	}
} 

案例三:求1-10的和

public class MySum{
	public static void main(Strinf args[]){
	int sum;
	for(int i = 1 ; i <= 10 ; i + + ){
	sum += i; //sum = sum + i ; 的简写
	}
	}
}

案例四:求1-100之间偶数的和
方法一:

public class MySum2{
	public static void main(String args[]){
		int sum = 0;
		for (int i = 1 ; i <= 100 ; i + +){
			//对 i 取余判断是否是偶数,如果是偶数,就加到 sum 上
			if(i % 2 == 0){
			sum += i;
			}
		}
		System.out.println("1-100之间偶数的和是:"+sum);
	}
}

方法二:

public class MySum2{
	public static void main(String args[]){
		int sum = 0;
		for (int i = 1 ; i <= 50 ; i + +){
			sum = sum + 2 * i ; //自己构建偶数
		}
		System.out.println("1-100之间偶数的和是:"+sum);
	}
}

案例五:判断一个数是否是水仙花数
所谓的水仙花数是指一个三位数,其各位数字的立方和等于该数本身。
举例:153就是一个水仙花数。153 = 111 + 555 + 333 = 1 + 125 + 27 = 153

public class NarcissisticNumbe{
	public static void main(String args[]){
		int totalNum = 0;  //用来统计水仙花数的个数
		for(int i = 100 ; i <= 1000 ; i + +){
		//得到 i 百位,十位,和各位上的数
		int a = i / 100 ;
		int b = ( i - a * 100 ) / 10;
		int c =  i - a * 100 - b * 10;
		//判断 i 是否为水仙花数,如果是,就输出它,并且总数自加 1
			if ( a * a * a + b * b * b + c * c * c == i){
				System.out.print(i+"、");
				totalNum++;
			}
		}
		System.out.prinln("水仙花数总共有"+totalNum+"个");
	}
}

while 语句

语法:
while(判断条件语句){
循环体语句;
}

完整格式:
初始化条件语句;
while(判断条件语句){
循环体语句;
控制条件语句;
}
执行流程
a:执行初始化条件语句;
b:执行判断条件语句,看其返回值是true还是false,如果是true,就继续执行,如果是false,就结束循环
c:执行循环体语句;
d:执行控制条件语句
e:回到b继续。

案例一:输出十次"HelloWorld"

public class MyWhile{
	public static void main(String [] args){
		int i = 0; //初始化条件语句
		while(i < 10){    //判断条件语句
				System.out.println("HelloWorld");   //循环体语句
				i + +;  //控制条件语句
		}
	}
}

案例二:统计水仙花数有多少个

public class MyWhile2{
	public static void main(String[] args){
	int i = 100; //初始化条件语句
	int totalNum = 0; //用来统计个数
		while(i < 1000){
			//循环体语句
			int a = i / 100 ;
			int b = ( i - a * 100 ) / 10;
			int c =  i - a * 100 - b * 10;
			if ( a * a * a + b * b * b + c * c * c == i){
				totalNum++;
			}
			i + +;  //控制条件语句 
		}
		System.out.println("水仙花数的总数是:"+totalNum);
	}
}

do…while 语句

语法:
do {
循环体语句;
}while(判断条件语句);

完整格式:
初始化条件语句;
do {
循环体语句;
控制条件语句;
}while(判断条件语句);
执行流程:
a:执行初始化条件语句;
b:执行循环体语句;
c:执行控制条件语句;
d:执行判断条件语句,看其返回值是true还是false,如果是true,就继续执行,如果是false,就结束循环
e:回到b继续。
案例:在控制台输出10次"HelloWorld"

public class MyDoWhile{
	public static void main(String args[]){
	int i = 0;
		do{
			System.out.println("HelloWorld");
			i + + ; 
		}while(i < 10);
	}
}

三种循环语句的区别

1、do…while 循环至少执行一次循环体,而for和while循环必须先判断条件是否成立,然后决定是否执行循环体语句。
2、如果你想在循环结束后继续使用控制条件的那个变量,就使用while循环,否则就使用for循环。
3、建议优先考虑for循环,然后是while循环

死循环

一定要注意控制条件语句控制的那个变量,不要弄丢,否则很容易形成死循环。
两种简单的死循环格式:
1、while(true){……}
2、for(;;){……}

循环案例演示

需求:请输出一个4行5列的星星(*) 图 案。
如图:
*****
*****
*****
*****

public class Demo1{
	public static void main(String[] args){
		for(int i = 0 ; i < 4 ; i + + ){
			for(int j = 0 ; j < 5 ; j + +){
				System.out.print("*");
			}
			System.out.println();
		}
	}
}

需求:请输出下列的形状
*
**
***
****
*****

public class Demo2{
	public static void main(String[] args){
		for(int i = 0 ; i < 5 ; i + +){
			for(int j = 0 ; j < i + 1 ; j + +){
				System.out.print("*");
			}
			System.out.println();
		}
	}
}

需求:在控制台输出九九乘法表。

public class Demo3{
	public static void main(String args[]){
		for(int i = 1 ; i <= 9 ; i + +){
			for(int j = 1 ; j < i + 1 ; j + +){
				System.out.print(i+"*"+j+"="+i*j+" ");
			}
			System.out.println();
		}
	}
}

控制跳转语句

概述

前面我们已经说过了,Java中的goto是保留字,目前不能使用。虽然没有goto语句可以增强程序的安全性,但是也带来的很多不便。
比如说,我想在某个循环执行到某一步的时候就结束,现在就做不了这件事。
为了弥补这个缺陷,Java中提供了break,continue和return来实现控制语句的跳转和中断。

分类

break 中断
continue 继续
return 返回

break的使用

使用场景

1、在选择结构switch中
2、在循环语句中
离开使用场景的存在是没有意义的。

作用

1、退出单层循环
2、退出多层循环(几乎不用)
要想实现这个效果,就必须只掉一个东西:带标签的语句
格式: 标签名:语句

continue的使用

使用场景

循环语句中

作用

跳出一次循环,执行下一步操作

return 的使用

return就是退出一个方法。跳转到上层调用的方法。
总结:
return: 结束当前方法
break: 结束单层循环
continue: 结束当前循环,执行下一次循环

方法

方法就是完成特定功能的代码块,在很多语言中都有函数的定义,在Java中称之为方法。
语法:
修饰符 返回值类型 方法名 (参数类型 参数名1 ,参数类型 参数名2){
方法体;
return 返回值;
}

如何写好一个方法

两个明确:
1、返回值类型:明确功能结果的数据类型
2、参数列表:你要传递几个采纳数,分别是什么类型

案例:写一个方法,求两个数中的较大值

//这里只写了方法,不写类,一般来说方法是包含在类里面的
//修饰符 返回数据类型 方法名 (参数列表){}
public int compareTwo(int a,int b){
	//假设较大值是a
	int max = a ;
	//如果a比b小,那么b值就是较大的值
	if(a < b){
	//把b值赋给max
		max = b;
	}
	System.out.println("较大的数是:"+max);
}

注意事项
1、方法不调用不执行
2、方法与方法是平级关系,不能嵌套定义
3、方法定义的时候参数之间用逗号隔开
4、方法调用的时候不用再传递数据类型
5、如果方法有明确的返回值,一定要有return带回一个值

方法重载

在同一个类中,允许存在一个以上的同名方法,只要他们的参数列表不同,与返回值无关。
参数列表不同,可以是参数的个数不同,也可以是参数类型不同。

猜你喜欢

转载自blog.csdn.net/qq_44238142/article/details/86688443