Java基础分支循环模块

分支语句

1.流程控制

1.1流程控制语句概述

顺序 选择 循环

1.2 流程控制语句的分类

顺序结构

分支结构(if,switch)

循环结构(for,while,do…while)

1.3顺序结构

顺序结构是程序中最简单最基本的流程控制,没有特定的语法结构,按照代码的先后顺序,依次执行,程序中大多数的代码都是这样执行的。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-p8KKVfsD-1651028610842)(Typora_image/080.png)]

/*
    顺序结构
*/

public class OrderDemo {
	public static void main(String[] args) {
		System.out.println("开始");
		System.out.println("语句A");
		System.out.println("语句B");
		System.out.println("语句C");
		System.out.println("结束");
	}
}

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-AqG4AXJD-1651028610845)(Typora_image/081.png)]

1.4 if语句
1.4.1if语句格式——一种判断

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-ddWP2bRa-1651028610846)(Typora_image/082.png)]

/*
    if语句格式1
	
	格式:
	
	    if (关系表达式) {
			语句体;
		}
		
	执行流程:
	    1.首先计算关系表达式的值
		2.如果关系表达式的值为true就执行语句体
		3.如果关系表达式的值为false就不执行语句体
		4.继续执行后面的语句内容
*/

public class IfDemo {
	public static void main(String[] args) {
		System.out.println("开始");
		
		//定义两个变量
		int a = 10;
		int b = 20;
		
		//需求:判断a和b的值是否相等,如果相等,就在控制台输出:a 等于 b
		if (a == b) {
			System.out.println("a等于b");
		}
		
		///需求:判断a和c的值是否相等,如果相等,就在控制台输出:a 等于 c
		int c = 10;
		if (a == c ) {
			System.out.println("a等于c");
		}
		System.out.println("结束");
	}
}

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-amTHx9qM-1651028610847)(Typora_image/083.png)]

1.4.2 if语句格式——两种判断

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-A04SAZfk-1651028610848)(Typora_image/084.png)]

/*
    if语句格式2
	
	格式:
	    if (关系表达式) {
			语句体1;
		} else {
			语句体2;
		}
		
	执行流程:
	    1.首先计算关系表达式的值
		2.如果关系表达式的值为true就执行语句体1
		3.如果关系表达式的值为false就执行语句体2
		4.继续执行后面的语句内容
*/

public class IfDemo02 {
	public static void main(String[] args) {
		System.out.println("开始");
		
		//定义两个变量
		int a = 10;
		int b = 20;
		//修改b的值
		b = 5;
		
		//需求:判断a是否大于b,如果是,在控制台输出:a的值大于b,如果不是,在控制台输出:a的值不大于b
		
		if (a > b) {
			System.out.println("a的值大于b");
		} else {
			System.out.println("a的值不大于b");
		}
		System.out.println("结束");
	}
}

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Xzbuf9eF-1651028610850)(Typora_image/085.png)]

1.4.3 案例:奇偶数

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-j1e43K2I-1651028610852)(Typora_image/086.png)]

/*
    奇偶数
	
	需求:
	    任意给出一个整数,请用程序实现判断该
		整数是奇数还是偶数,并在控制台上输出
		该整数是奇数还是偶数
*/

import java.util.Scanner;

public class IfTest01 {
	public static void main(String[] args) {
		
		//创建对象
		Scanner sc = new Scanner(System.in);
		//接收数据
		System.out.println("请输入一个整数:");
		int number = sc.nextInt();
		
		if (number % 2 == 0) {
			System.out.println(number + "是偶数");
		} else {
			System.out.println(number + "是奇数");
		}
	}
}

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-xtC2OV7U-1651028610854)(Typora_image/087.png)]

1.4.4 if语句格式三——多种判断

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-tcGmZOSm-1651028610854)(Typora_image/088.png)]

/*
    if语句格式3
	
	格式:
	    if  (关系表达式1) {
			语句体1;
		} else if (关系表达式2) {
			语句体2;
		}
		...
		else {
			语句体n+1;
		}
		
	执行流程:
	
	    1.首先计算关系表达式1的值
		2.如果值为true就执行语句体1;如果值为false就计算关系表达式2的值
		3.如果值为true就执行语句体2;如果值为false就计算关系表达式3的值
		4. ...
		5.如果没有任何关系表达式为true,就执行语句体n + 1
*/

//需求:键盘录入一个星期数(1,2,3,4,5,6,7),输出对应的星期一,星期二,星期三...星期日

import java.util.Scanner;

public class IfDemo03 {
	public static void main(String[] args) {
			System.out.println("开始");
		
		//创建对象
		Scanner sc = new Scanner(System.in);
		
		//接收数据
		System.out.println("请输入一个星期数(1-7):");
		int week = sc.nextInt();
		System.out.println("今天是星期" + week);
		if (week == 1) {
			System.out.println("今天是星期一");
		} else if (week == 2) {
			System.out.println("今天是星期二");
		} else if (week == 3) {
			System.out.println("今天是星期三");
		} else if (week == 4) {
			System.out.println("今天是星期四");
		} else if (week == 5) {
			System.out.println("今天是星期五");
		} else if (week == 5) {
			System.out.println("今天是星期六");
		} else {
			System.out.println("今天是星期天");
		}
		
		System.out.println("结束");
			
    }
}

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-8R0M4nBf-1651028610856)(Typora_image/089.png)]

1.4.5 案例:考试奖励

需求:小明快要期末考试了,小明爸爸对他说,会根据他不同的考试成绩,送给他不同的礼物,假如你可以控制小明的得分,请用程序实现小明到底该获得什么样的礼物,并在控制台输出。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-p4QJRMCU-1651028610858)(Typora_image/090.png)]

/*
    考试奖励
	
	需求:
	    小明快要期末考试了,小明爸爸对他说,会根据他不同的考试成绩,
		送给他不同的礼物,假如你可以控制小明的得分,请用程序实现
		小明到底该获得什么样的礼物,并在控制台输出。
	
    奖励:
        95~100    山地自行车一辆
        90~94     游乐场玩一次
        80~89     变形金刚玩具一个
        80以下    胖揍一顿		
*/
import java.util.Scanner;

public class IfTest02 {
	public static void main(String[] args) {
		//小明的考试成绩未知,可以使用键盘录入的方式获取值
		Scanner sc = new Scanner(System.in);
		
		System.out.println("请输入一个分数:");
		int score = sc.nextInt();
		
		//由于奖励种类较多,属于多种判断,采用if...else...if格式实现
		//为每种判断设置对应的条件
		//为每种判断设置对应的奖励
		//&& 短路与   左边为真,执行右边,左边为假,右边不执行;充当"且"的关系
		/*
		if (score>=95 && score<=100 ) {
			System.out.println("山地自行车一辆");
		} else if (score>=90&&score<=94) {
			System.out.println("游乐场玩一次");
		} else if (score>=80&&score<=89) {
		    System.out.println("变形金刚玩具一个");	
		} else {
			System.out.println("胖揍一顿");
		}
		*/
		//数据测试:正确数据,边界数据,错误数据
	    //||短路或  左边为真,右边不执行,左边为假,右边执行;充当"或"的关系
		/*
		if (score >100 || score < 0) {
			System.out.println("你输入的分数有误");
		} else if (score>=95 && score<=100 ) {
			System.out.println("山地自行车一辆");
		} else if (score>=90&&score<=94) {
			System.out.println("游乐场玩一次");
		} else if (score>=80&&score<=89) {
		    System.out.println("变形金刚玩具一个");	
		} else {
			System.out.println("胖揍一顿");
		}
		*/
		if (score >100 | score < 0) {
			System.out.println("你输入的分数有误");
		} else if (score>=95 & score<=100 ) {
			System.out.println("山地自行车一辆");
		} else if (score>=90&score<=94) {
			System.out.println("游乐场玩一次");
		} else if (score>=80&score<=89) {
		    System.out.println("变形金刚玩具一个");	
		} else {
			System.out.println("胖揍一顿");
		}
		
	}
}

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-ju8JeqgE-1651028610859)(Typora_image/091.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-QYVaGKFy-1651028610860)(Typora_image/092.png)]

1.5 switch语句格式
1.5.1 switch语句格式

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-RFPKzxiA-1651028610861)(Typora_image/093.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-oaI4vcwW-1651028610862)(Typora_image/094.png)]

/*
    switch语句
	
	格式:
	    switch(表达式) {
			case 值1:
			语句体1;
			break;
			case 值2:
			语句体2;
			break;
			...
			default;
			语句体n+1;
			[break;]
		}
	
	格式说明:
	    表达式:取值为byte、short、int、char,JDK5以后可以是枚举,JDK7以后可以是String.
		case: 后面跟的是要和表达式进行比较的值。
		break: 表示中断,结束的意思,用来结束switch语句。
		default: 表示所有情况都不匹配的时候,就执行该处的内容,和if语句的else相似。
		
	执行流程:
	    首先计算表达式的值。
		依次和case后面的值进行比较,如果有对应的值,就会执行相应的语句,在执行的过程中,遇到break就会结束。
		如果所有的case后面到底值和表达式的值都不匹配,就会执行default里面的语句体,然后程序结束掉。

*/

import java.util.Scanner;

public class SwitchDemo {
	public static void main(String[] args) {
		System.out.println("开始");
		
		//需求:键盘录入一个星期数(1,2,3...7),输出对应的星期一,星期二,...星期日
		Scanner sc = new Scanner(System.in);
		
		System.out.println("请输入一个星期数(1-7):");
		//接收数据
		int week = sc.nextInt();
		
		switch(week) {
			case 1:
			    System.out.println("星期一");
				break;
			case 2:
			    System.out.println("星期二");
				break;
			case 3:
			    System.out.println("星期三");
				break;
			case 4:
			    System.out.println("星期四");
				break;
			case 5:
			    System.out.println("星期五");
				break;
			case 6:
			    System.out.println("星期六");
				break;
			case 7:
			    System.out.println("星期日");
				break;
			default:
			    System.out.println("你输入的星期数有误");
				break;
		}
		
	}
}

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-yz5z7bwb-1651028610863)(Typora_image/095.png)]

1.5.2 案例:春夏秋冬

需求:一年中有12个月,分别属于春夏秋冬4个季节,键盘录入一个月份,请用程序实现判断该月份属于哪个季节,并输出。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Cy4CaXaO-1651028610865)(Typora_image/096.png)]

/*
    春夏秋冬
	
	需求:
	     一年有12个月,分属于春夏秋冬4个季节,键盘录入
		 一个月份,请用程序实现判断该月份属于哪个季节,并输出
	
	春: 3、4、5
	夏: 6、7、8
	秋: 9、10、11
	冬: 1、2、12
*/

import java.util.Scanner;

public class SwitchTest {
	public static void main(String[] args) {
		//键盘录入月份数据,使用变量接收
		Scanner sc = new Scanner(System.in);
		
		System.out.println("请输入一个月份:");
		int month = sc.nextInt();
		
		//多情况判断,这里采用switch语句实现
		//在每种情况下,完成输出对应的季节
		
		/*
		switch(month) {
			case 1:
			    System.out.println("冬季");
				break;
			case 2:
			    System.out.println("冬季");
				//break;
			case 3:
			    System.out.println("春季");
				break;
			case 4:
			    System.out.println("春季");
				break;
            case 5:
			    System.out.println("春季");
				break;
			case 6:
			    System.out.println("夏季");
				break;
            case 7:
			    System.out.println("夏季");
				break;
			case 8:
			    System.out.println("夏季");
				break;
            case 9:
			    System.out.println("秋季");
				break;
			case 10:
			    System.out.println("秋季");
				break;
            case 11:
			    System.out.println("秋季");
				break;
			case 12:
			    System.out.println("冬季");
				break;	
            default:
                System.out.println("输入的月份有误");
                //此时break;可不写				
			
		}
		*/
		//进行优化
		
		//case穿透
		switch (month) {
			case 1:
			case 2:
			case 12:
			    System.out.println("冬季");
				break;
			case 3:
			case 4:
			case 5:
			    System.out.println("春季");
				break;
			case 6:
			case 7:
			case 8:
			    System.out.println("夏季");
				break;
			case 9:
			case 10:
			case 11:
			    System.out.println("秋季");
				break;
			default:
			    System.out.println("输入的月份有误");
		}
	}
}

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-hsdlXwyn-1651028610867)(Typora_image/097.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-byGyLB3i-1651028610868)(Typora_image/098.png)]

循环语句

1.for循环语句

1.1循环结构

循环结构的特征:

1.重复做某件事情

2.具有明确的开始和停止标志

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-wLvAAt2O-1651028610870)(Typora_image/099.png)]

1.2 for循环语句格式

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-1O4rfT8E-1651028610871)(Typora_image/100.png)]

/*
    for语句
	
	格式:
	
	    for(初始化语句;条件判断语句;条件控制语句) {
			循环体语句;
		}
	
	执行流程:
	1.执行初始化语句
	2.执行条件判断语句,看其结果是true还是false
	    如果是false,循环结束
		如果是true,继续执行
	3.执行循环体语句
	4.执行条件控制语句
	5.回到2执行
*/

public class ForDemo {
	public static void main(String[] args) {
		//需求:在控制台输入5次"HelloWorld"
		System.out.println("HelloWorld");
		System.out.println("HelloWorld");
		System.out.println("HelloWorld");
		System.out.println("HelloWorld");
		System.out.println("HelloWorld");
		System.out.println("----------");
		
		//用循环改进
		自增自减运算符单独使用时,i++和++i效果一样。习惯放后面 i++
		for(int i=1;i<=5;i++) {
			System.out.println("HelloWorld");
		}
	}
}

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-JJVdouao-1651028610871)(Typora_image/101.png)]

1.3 案例:输出数据

需求:在控制台输出1-5和5-1的数据

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-LDxXjJFA-1651028610872)(Typora_image/102.png)]

/*
    输出数据
	
	需求:
	    在控制台输出1-5和5-1
		
*/

public class ForTest01 {
	public static void main(String[] args) {
		//需求:输出数据1-5
		for(int i = 1; i<=5; i++) {
			System.out.println(i);
		}
		System.out.println("---------");
		//需求:输出数据5-1
		for(int i =5; i>=1; i--) {
			System.out.println(i);
		}
	}
}

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-IkpXMe9J-1651028610873)(Typora_image/103.png)]

1.4 案例:求和

需求:求1-5之间的数据和,并把求和结果在控制台输出

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Jqjz1tLp-1651028610874)(Typora_image/104.png)]

/*
    求和
	
	需求:
	    求1-5之间的数据和,并把求和结果在控制台输出
		
*/

public class ForTest02 {
	public static void main(String[] args) {
		//求和的最终结果是必须保存起来,需要定义一个变量,用于保存求和的结果,初始值为0
		int sum = 0;
		//从1开始到5结束,使用循环结构完成
		for (int i = 1 ;i<=5;i++) {
			//讲反复进行的事情写入循环结构内部,此处反复进行的事情是将数据 i加到用于保存最终求和变量 sum中
			sum += i;
		}
		
		//将循环执行完毕时,将最终数据打印出来
		System.out.println("1-5之间的数据和为:" + sum);
		
		/*
		sum += 1;本质是sum = sum + 1;
		第一次是 sum = sum + i = 0 + 1 = 1
		第二次是 sum = sum + i = 1 + 2 = 3
		...
		*/
	}
}

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-J5TqRjUB-1651028610875)(Typora_image/105.png)]

1.5 案例:求偶数和

需求:求1-100之间的偶数和,并把求和结果在控制台输出

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-gNATo2en-1651028610875)(Typora_image/106.png)]

/*
    求偶数和
	
	需求:
	    求1-100之间的偶数和,并把求和结果在控制台输出
		
*/

public class ForTest03 {
	public static void main(String[] args) {
		//求和的最终结果是必须保存起来,需要定义一个变量,用于保存求和的结果,初始值为0
		int sum = 0;
		//求奇数和
		int sum_ = 0;
		//对1-100的数据求和与1-5的数据求和大致相同
		for (int i = 1; i<=100;i++) {
			//对1-100的偶数求和,需要对求和操作添加限制条件,判断是否是偶数
			if (i % 2 == 0) {
				sum += i;	
			} else {
				sum_ += i;	
			}
		}
		//当循环执行完毕时,将最终数据打印出来
		System.out.println("1-100之间的偶数和为:" + sum);
		System.out.println("1-100之间的奇数和为:" + sum_);
	}
}

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-lhTQKyb1-1651028610876)(Typora_image/107.png)]

1.6 案例:水仙花

需求:在控制台输出所有的"水仙花数"

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-K0OWkqA9-1651028610886)(Typora_image/108.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-9eXEHCWr-1651028610888)(Typora_image/109.png)]

/*
    水仙花
	
	需求:
	    在控制台输出所有的"水仙花数"
		
*/

public class ForTest04 {
	public static void main(String[] args) {
		//输出所有的水仙花数必然要使用到循环,遍历所有的三位数,三位数从100开始,到999结束
		/*
		for (int i =100;i<1000;i++) {
			
		}
		*/
		for (int i =100; i<=999;i++) {
			//在计算之前获得三位数中每个位上的值
			int ge = i % 10;
			int shi = i/10 % 10;
			int bai = i/10/10 % 10;
			
			//判定条件是将三位数中的每个数值取出来,计算立方和后与原始数字比较是否相等
			if(ge*ge*ge + shi*shi*shi + bai*bai*bai == i) {
				//输出满足条件的数字就是水仙花数
				System.out.println(i);
			}
		}	
	}
} 

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-vWas3kTU-1651028610891)(Typora_image/110.png)]

1.7 案例:统计

需求:统计"水仙花数" 一共有多少个,并在控制台输出个数

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-IoAJ5PlO-1651028610901)(Typora_image/111.png)]

/*
    统计
	
	需求:
	    统计"水仙花数"一共有多少个,并在控制台输出个数
*/

public class ForTest05 {
	public static void main(String[] args) {
		//定义变量名count,用于保存"水仙花数"的数量,初始值为0
		int count = 0;
		//输出所有的水仙花数必然要使用到循环,遍历所有的三位数,三位数从100开始,到999结束
		for (int i =100;i<1000;i++) {
			//在计算之前获得三位数中每个位上的值
			int ge = i%10;
			int shi = i/10%10;
			int bai = i/10/10%10;
			
			//在判定水仙花数的过程中,满足条件不再输出,更改为修改count的值,使count+1
			if (ge*ge*ge + shi*shi*shi + bai*bai*bai == i) {
				count++;
			}
		}

		//打印输出最终结果
		System.out.println("水仙花共有:" + count + "个");
	}
}

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-EwNyAlqK-1651028610904)(Typora_image/112.png)]

2.while循环语句

2.1while循环语句格式

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-DHSo6haw-1651028610910)(Typora_image/113.png)]

/*
    while语句
	
	基本格式:
	    while(条件判断语句){
			循环体语句;
		}
	
	完整格式:
	    初始化语句;
		while(条件判断语句) {
			循环体语句;
			条件控制语句;
		}
	
	执行流程:
	    1.执行初始化语句
		2.执行条件判断语句,看其结果是true还是false
		    如果是false,循环结束
			如果是true,继续执行
		3.执行循环体语句
		4.执行条件控制语句
		5.回到2继续
*/

public class WhileDemo {
	public static void main(String[] args) {
		//需求:在控制台输出5次"HelloWorld"
		//用for循环
		
		for (int i = 1;i<=5;i++) {
			System.out.println("HelloWorld");
		}
		System.out.println("---------");
		//用while循环实现
		int j = 1;
		while (j <= 5) {
			System.out.println("HelloWorld");
			j++;
		}
	}
}

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-1KjAnFrq-1651028610913)(Typora_image/114.png)]

2.2 案例:珠穆朗玛峰

需求:世界最高山峰是珠穆朗玛峰(8844.43米=8844430毫米),假如我有一张足够大的纸,它的厚度是0.1毫米。请问,我折叠多少次,可以折成珠穆朗玛峰的高度?

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Fyxgbjm4-1651028610917)(Typora_image/115.png)]

/*
    珠穆朗玛峰
	
	需求:
	
	    世界最高山峰是珠穆朗玛峰(8844.43米=8844430毫米),
		假如我有一张足够大的纸,它的厚度是0.1毫米。
		请问,我折叠多少次,可以折成珠穆朗玛峰的高度?
*/

public class WhileTest {
	public static void main(String[] args) {
		//定义一个计数器,初始值为0
		int count = 0;
		//定义纸张厚度
		double paper = 0.1;
		//定义珠穆朗玛峰的高度
		int zf = 8844430;
		//因为要反复折叠,所有要使用循环,但是不知道折叠多少次,这种情况下更适合使用while循环
		//折叠的过程中当纸张厚度大于珠峰就停止了,因此继续执行的要求是纸张厚度小于珠峰高度
		while (paper <= zf) {
        //循环的执行过程中每次纸张折叠,纸张的厚度要加倍
		paper *=2;
		//在循环中执行累加,对应折叠了多少次
		count++;
		}
		
		//打印计数器的值
		System.out.println("需要折叠:" + count + "次");
	}
}

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-V4CMuBMI-1651028610919)(Typora_image/116.png)]

3.do…while循环语句

3.1 do…while循环语句格式

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Evv6br9n-1651028610919)(Typora_image/117.png)]

/*
    do...while语句
	
	基本格式:
	do {
		循环体语句;
	}while(条件判断语句);
	
	完整格式:
	    初始化语句;
		do {
			循环体语句;
			条件控制语句;
		} while(条件判断语句);
		
	执行流程:
	    1.执行初始化语句
		2.执行循环体语句
		3.执行条件控制语句
		4.执行条件判断语句,看其结果是true还是false
		    如果是false,循环结束
			如果是true,继续执行
		5.回到2执行
*/

public class DoWhileDemo {
	public static void main(String[] args) {
		//需求:在控制台输出5次"HelloWorld"
		
		//for循环实现
		for(int i =1; i<=5;i++) {
			System.out.println("HelloWorld");
		}
		System.out.println("----------");
		
		//while循环实现
		int j = 1;
		while(j<=5) {
			System.out.println("HelloWorld");
			j++;
		}
		System.out.println("===========");
		
		//do...while循环实现
		int z = 1;
		do {
			System.out.println("HelloWorld");
			z++;
		} while(z<=5);
	}
}

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-oBM6CDS2-1651028610921)(Typora_image/118.png)]

3.2三种循环的区别

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-T6QWCr1F-1651028610925)(Typora_image/120.png)]

/*
    三种循环的区别
*/

public class LoopTest {
	public static void main(String[] args) {
		/*
		//for循环
		for(int i =3; i<3;i++){
			System.out.println("学习Java");
		}
		System.out.println("----------");
		
		//while循环
		int j =3;
		while(j<3){
			System.out.println("学习Java");
			j++;
		}
		System.out.println("===========");
		//do...while循环
		int k =3;
		do {
			System.out.println("学习java");
			k++;
		}while(k<3);
		*/
		/*
		for(int i =3; i<3;i++){
			System.out.println("学习Java");
		}
		//System.out.println(i); 报错
		System.out.println("----------");
		
		//while循环
		int j =3;
		while(j<3){
			System.out.println("学习Java");
			j++;
		}
		System.out.println(j);
		System.out.println("===========");
		*/
		//死循环
		/*
	    for(;;) {
			System.out.println("for");
		}
		*/
		/*
		while(true) {
			System.out.println("while");
		}
		*/
		/*
		do {
			System.out.println("do...while");
		}while(true);
		*/
		
	} 
}

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-o4wbNwgL-1651028610928)(Typora_image/119.png)]

4.跳转控制语句

4.1跳转控制语句概述

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-MdZhV3iu-1651028610932)(Typora_image/121.png)]

continue用在循环中,基于条件控制,跳过某次循环体内容的执行,继续下一次的执行
break用在循环中,基于条件控制,终止循环体内容的执行,也就是说结束当前的整个循环
public class ControlDemo {
	public static void main(String[] args) {
		for(int i =1;i<=5;i++){
			//筛选偶数
			if(i % 2 == 0){
				//continue;
		        break;
			}
			System.out.println(i);
		}
		
	}
}

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-CeSbaBSa-1651028610934)(Typora_image/122.png)]

5.循环嵌套

5.1 循环语句的概述

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-1mjrpRSK-1651028610936)(Typora_image/123.png)]

/*
    循环嵌套:
	    循环语句中包含循环语句
		
	需求:
	    在控制台输出一天的小时和分钟
		
		分钟和小时的范围:
		    分钟: 0<= minute <60
		    小时:0<= hour < 24
*/

public class ForForDemo {
	public static void main(String[] args) {
		/*
		System.out.println("0时0分");
		System.out.println("0时1分");
		System.out.println("0时2分");
		System.out.println("0时3分");
		System.out.println("------");
		System.out.println("1时0分");
		System.out.println("1时1分");
		System.out.println("1时2分");
		System.out.println("1时3分");
		System.out.println("-------");
		System.out.println("2时0分");
		System.out.println("2时1分");
		System.out.println("2时2分");
		System.out.println("2时3分");
		*/
		
		//循环改进
		/*
		for(int minute=0;minute<4;minute++){
			System.out.println("0时" + minute + "分");
		}
		System.out.println("---------");
		for(int minute=0;minute<4;minute++){
			System.out.println("0时" + minute + "分");
		}
		System.out.println("==========");
		for(int minute=0;minute<4;minute++){
			System.out.println("0时" + minute + "分");
		}
		*/
		//外循环控制小时的范围,内循环控制分钟的范围
	    /*
		for(int hour=0;hour<3;hour++){
			for(int minute=0;minute<4;minute++){
			System.out.println(hour + "时" + minute + "分");
			}
			System.out.println("---------");
		}
		*/
		for(int hour=0;hour<24;hour++){
			for(int minute=0;minute<60;minute++){
			System.out.println(hour + "时" + minute + "分");
			}
			System.out.println("---------");
		}
		
	} 
}

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Sy71x2KY-1651028610937)(Typora_image/124.png)]

6.Random

6.1 Random的作用和使用步骤

作用:随机产生的一个随机数

使用步骤:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-srDvxZsp-1651028610941)(Typora_image/125.png)]

/*
    Random
	
	作用:
	    1.导包
		    import java.util.Random;
		2.创建对象
		    Random r = new Random();
		3.获取随机数
		    int number = r.nextInt(10);
			获取数据的范围:[0,10) 包括0,不包括10
*/

import java.util.Random;


public class RandomDemo {
	public static void main(String[] args) {
		//创建对象
		Random r = new Random();
		
		//获取随机数
		for(int i=0;i<10;i++) {
			int number = r.nextInt(10);
		
		    System.out.println("number为"+ number);
		}
		//需求:获取一个1-100之间的随机数
		//分析:nextInt(100)只能取到0-99,加个1,就可以实现1-100
		int x = r.nextInt(100)+1;
		System.out.println(x);
		
	}
}

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-4KXqT0AV-1651028610944)(Typora_image/126.png)]

6.2 案例:猜数字

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-3KlELD8I-1651028610945)(Typora_image/127.png)]

/*
    猜数字
	
	需求:
	
	    程序自动生成一个1-100之间的数字,使用程序实现猜中这个数字是多少?
		当猜错的时候根据不同情况给出相应的提示
		
		如果猜的数字比真实数字大,提示你猜的数据大了
		如果猜的数字比真实数字小,提示你猜的数据小了
		如果猜的数字与真实数字相等,提示恭喜你猜中了
*/

import java.util.Random;
import java.util.Scanner;

public class RandomTest{
	public static void main(String[] args) {
		//要完成猜数字的游戏,首先需要有一个要猜的数字,使用随机数生成该数字,范围到1到100
		//创建对象
		Random r = new Random();
		int number = r.nextInt(100) + 1;
		
		while(true) {
			//使用程序实现猜数字,每次均要输入猜测的数字值,需要使用键盘录入实现
			//创建对象
			Scanner sc = new Scanner(System.in);
			
			System.out.println("请输入你要猜的数字:");
			
			//接收数据
			int guessNumber = sc.nextInt();
			
			//比较输入的数字和系统实现产生的数据,需要使用分支语句,这里使用if...else...if...格式,根据不同的情况进行猜测结果显示
			if(guessNumber > number){
				System.out.println("你猜的数字" + guessNumber + "大了");
			}else if(guessNumber < number) {
				System.out.println("你猜的的数字"+guessNumber + "小了");
			}else {
				System.out.println("恭喜你猜中了");
				break;
			}
		}
		
	}
}

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-mNoejlWs-1651028610947)(Typora_image/128.png)]

python实现:

""""
猜数字
1.计算机随机生成一个1-100以内的正整数
2.用户通过键盘输入数字,猜测计算机所生成的随机数。
3.注意:对用户输入的次数不做限制

"""
import random
guessNumber = random.randint(1,101)

while True:
    user_number = input("请输入一个数字:")
    #  isdigit() 方法检测字符串是否只由数字组成
    if user_number.isdigit():
        user_number = int(user_number)
        if user_number > guessNumber:
            print("你猜的数字" + str(user_number) + "大了")
        if user_number < guessNumber:
            print("你猜的数字" + str(user_number) + "小了")
        if user_number == guessNumber:
            print("恭喜你,猜中了!")
            break
    else:
        print("非法输入!请重新输入")
        continue

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-E8MKn81t-1651028610948)(Typora_image/129.png)]

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

今晚务必早点睡

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值