天天看点

JavaSE——Day4——循环语句,控制跳转语句,方法循环结构概述控制跳转语句方法

循环结构概述

一、循环结构

概述

循环语句可以在满足循环条件的情况下,反复执行某一段代码,这段被重复执行的代码被称为循环体语句,当反复执行这个循环体,需要在合适的时候把循环判断条件修改为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带回一个值

方法重载

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

参数列表不同,可以是参数的个数不同,也可以是参数类型不同。