栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

事情巨多的Java女友 “分支结构、循环结构与Random”

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

事情巨多的Java女友 “分支结构、循环结构与Random”

一.分支语句 1.流程控制

1.1流程控制语句的概述

1.2流程控制语句的分类

顺序结构:

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

顺序结构的执行流程:从上往下依次执行

分支结构(if,switch)

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

2. if语句 2.1 if语句格式1:

if(关系表达式){

​ 语句体;

}

执行流程:首先计算关系表达式的关系表达式的值

​ 如果关系表达式的值为true就执行语句体

​ 如果关系表达式的值为false就不执行语句体

​ 继续执行后面的语句内容

2.2 if语句格式2

if(关系表达式){

​ 语句体1;

}else{

语句体2;

}

首先计算关系表达式的值

如果关系表达式的值为true就执行语句体1

如果关系表达式的值为false就执行语句体2

继续执行后边的语句内容

注意:else的语句后边也有 ;

奇偶数案例:

任意给出一个整数用程序实现判断该整数是奇数还是偶数,并输出是奇数还是偶数

2.3 if语句格式3:

格式:

if(关系表达式1){

​ 语句体1;

}else if(关系表达式2){

​ 语句体2;

}else{

​ 语句体3;

}

执行流程:

首先计算关系表达式1的值

如果值为true就执行语句体1;如果值为false就计算关系表达式2的值如果值为true就执行语句体2;如果为false就执行关系表达式3的值 如果没有任何关系表达式为true 就执行语句体n+1。

例子:

考试奖励案例(注意测试数值):

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

95-100 山顶自行车

90-94 游乐场游玩

80-89 变形金刚玩具

八十分以下 大板子

补充:测试的时候要用正确数据,边界数据和错误数据

3. switch语句 3.1 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里面的语句体,然后程序结束掉

春夏秋冬案例(case穿透) :

一年有十二个月分属于春夏秋冬四个季节,键盘录入一个月份,用程序实现判断该月份属于哪个季节

春:345 夏:678 秋: 9 10 11 冬:1 2 12

错误示范 case后边的数字不能是多个 只能有一个

case穿透

switch(n){
			case 3:
			case 4:
			case 5:
			System.out.println("春季");
			break;

在switch语句中假如case控制的语句体后边不写break,将出现穿透现象在不判断下一个case值的情况下向下运行直到遇到break或者switch循环结束

二.循环语句 1. for循环 1.1循环结构:

特征:

重复做某件事

具有明显的开始和结束的标志

循环结构的组成:

初始化语句:用于表示循环开启时的起始状态,简单说就是循环开始时是什么样子

条件判断语句:表示循环反复执行的条件,简单说就是判断循环能否一直执行下去

循环体语句:用于表示循环反复执行的内容,简单说就是循环反复执行的事情

条件控制语句:用于表示循环执行中每次变换的内容,简单说就是控制循环是否能执行下去

循环结构的语法:

初始化语句:这里可以是一条或多条语句,这些语句可以完成一些初始化操作

条件判断语句:表达式能判断循环体是否执行(例如a<3)

循环体语句:可以是任意语句,将反复执行

条件控制语句:通常是一条语句来改变变量的值(常见的是i++ i–之类的)

1.2 for循环语句格式

格式:

for(初始化语句;条件判断语句;条件控制语句){

​ 循环体语句;

}

执行流程

1执行初始化语句

2执行条件判断语句,看其是true还是false

​ 如果是false,循环结束

​ 如果是true,循环继续

3执行循环体语句

4执行条件控制语句

5回到2继续

输出数据案例:

在控制台输出1–5和5–1的数

public class Xxx{
	public static void main(String[] args){
		for(int i=1;i<=5;i++){
			System.out.println(i);
		}
		for(int i=5;i>=1;i--){
			System.out.println(i);
		}
		
		
	}
}                   

求和案例:

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

public class Xxx{
	public static void main(String[] args){
		int z =0;
		for(int i=1;i<=5;i++){
			z=z+i;
			//System.out.println(z);
		}
		System.out.println(z);
	}
}      

输出在循环内和循环外的区别:

z += i;

偶数和案例:
 public class Xxx{
	public static void main(String[] args){
		int z =0;
		for(int i=1;i<=100;i++){
			if(i%2==0){
				z += i;
			}
			//System.out.println(z);
		}
		System.out.println(z);
	}
}      

错误点:是i%2 == 0 有两个等号 一个等号是赋值语句

水仙花案例:

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

什么是水仙花数:

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

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

 public class Xxx{
	public static void main(String[] args){
		int z =0;
		int y =0;
		int b =0;
		int c =0;
		for(int i=100;i<=999;i++){
			z=(i%10)*(i%10)*(i%10);
			y=(i/100)*(i/100)*(i/100);
			b=(i/10%10)*(i/10%10)*(i/10%10);
			c=z+y+b;
			if(c==i){
				System.out.println(i+"为水仙数");
			}
			//System.out.println(z);
		}
		
	}
}      

学习到的:水仙花数的计算方法

统计案例:
 public class Xxx{
	public static void main(String[] args){
		int z =0;
		int y =0;
		int b =0;
		int c =0;
		int d =0;
		for(int i=100;i<=999;i++){
			z=(i%10)*(i%10)*(i%10);
			y=(i/100)*(i/100)*(i/100);
			b=(i/10%10)*(i/10%10)*(i/10%10);
			c=z+y+b;
			if(c==i){
				d++;
				//System.out.println(i+"为水仙数");
			}
			//System.out.println(z);
		}
		System.out.println("水仙花数个数为"+d);
	}
}      

运行结果:

2. while循环语句 2.1while循环语句格式

基本格式:

while(条件判断语句){

​ 循环体语句;

}

完整格式:

初始化语句;

while (条件判断语句){

​ 循环体语句;

​ 条件控制语句;

}

执行流程:

执行初始化语句

2执行条件判断语句看其结果是true还是false

​ 如果是false 循环结束

​ 如果是true 继续执行

执行循环体语句

执行条件控制语句

回到2继续

例子:

int j = 1;
while(j<=5){
    System.out.println("Hello");
    j++;
}
珠穆朗玛峰案例:
 public class Xxx{
	public static void main(String[] args){
		int i = 8844430;
		double z = 0.1;
		int x = 0;
		while(z<=i){
			z=z*2;
			x++;	
		}
		System.out.println("折叠了"+x+"次");
	}
}       

错误点:while后括号里的试是运行的要求 不是运行截至的要求

​ z是0.1 所以要用double

3. do…while循环语句 3.1 do…while循环语句格式

基本格式:

do{

​ 循环体语句;

}while(条件判断语句);

完整格式:

do{

​ 循环体语句;

​ 条件控制语句;

}while(条件判断语句);

执行过程:

执行初始化语句

执行循环体语句

执行条件控制语句

执行条件判断语句,看其结果是true还是false

​ false 循环结束

​ true 循环继续

回到2继续执行

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

输出五次hello

3.2三种循环的区别

死循环:

区别:

while和for是先判断条件是否成立,再进入循环体

do…while循环是先进入循环体在判断

for和while的区别:

for循环中的变量在for循环结束后不能使用

while循环中的变量在循环结束后仍可以使用

4. 跳转控制语句 4.1跳转控制语句概述

跳过某次循环体内容的执行

( continue)注意:使用是基于条件控制的

break:终止循环体内容的执行

都是使用在循环中

都有条件判断的

5.循环嵌套 5.1 循环嵌套概述:

语句结构:

顺序语句: 以分号结束,表示一句话结束

分支语句: 一对大括号表示if的整体结构 整体描述一个完整的if语句

一对大括号表示switch的整体结构 整体描述一个完整的if语句

**循环结构:**一对大括号表示for的整体结构整体描述一个完整的for语句

一对大括号表示while的整体结构整体描述一个完整的while语句

do while以分号结尾,整体描述一个完整的do while语句

任何语句都可以看成是一个语句一个代码

分支语句中包含分支语句叫做分支嵌套

循环语句包含循环语句叫循环嵌套

 public class Xxx{
	public static void main(String[] args){
		for(int i=0;i<4;i++){
			for(int a=0;a<4;a++){
				System.out.println(i+"时"+a+"分");
	}
}
 }
 }       

外循环控制小时

内循环控制分钟

6. Random 6.1 Random的作用和使用步骤

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

使用步骤:

导包:

import java.util.Random;

创建对象:

Random r = new Random();

获取随机数:

int number = r.nextInt(10);
//获取数据的范围(0-10)不包括0,不包括10
猜数字案例
 import java.util.Random;
 import java.util.Scanner;
 public class Xxx{
	public static void main(String[] args){
		Random R = new Random();
		int number = R.nextInt(100)+1;
		while(true){
			Scanner sc = new Scanner(System.in);
			int a=sc.nextInt(); 
			if(a > number){
				System.out.println("猜的大了");
			}else if(a < number){
				System.out.println("猜的小了");
			}else{
				System.out.println("猜对了");
				break;
			}
		}
			
	}
 }       

错误点:int a需要在循环内

记得带break;

java
Random r = new Random();

获取随机数:

```java
int number = r.nextInt(10);
//获取数据的范围(0-10)不包括0,不包括10
猜数字案例
 import java.util.Random;
 import java.util.Scanner;
 public class Xxx{
	public static void main(String[] args){
		Random R = new Random();
		int number = R.nextInt(100)+1;
		while(true){
			Scanner sc = new Scanner(System.in);
			int a=sc.nextInt(); 
			if(a > number){
				System.out.println("猜的大了");
			}else if(a < number){
				System.out.println("猜的小了");
			}else{
				System.out.println("猜对了");
				break;
			}
		}
			
	}
 }       

错误点:int a需要在循环内

记得带break;

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/1004436.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号