Java ee 从入门到放弃 day03

流程控制语句

switch语句

/*
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:所有情况都不匹配时,执行该处内容

执行流程:
1.首先计算表达式的值
2.依次和case后面的值进行比较,如果匹配就执行语句体,遇见break结束
3.所有情况都不匹配时,执行default的内容.

注意:swich用于判断两个数据之间是否相等时相对于if语句可能较简单一点,但是swich只能用于这种情况.
所以,能用swich就一定能用if,能用if不一定就能用swich
*/

//导包
import java.util.Scanner;

public class Demo01{
	public static void main(String[] args){
		System.out.println("请输入一个星期数(1-7):");
		//创建对象
		Scanner sc = new Scanner(System.in);
		//接收数据
		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;
		}
		System.out.println("结束");
		
	}
}

春夏秋冬

/*
春夏秋冬:一年有12个月,分为春夏秋冬四个季节.键盘输入一个月份,判断是哪个季节,并输出
3-5:春季
6-8:夏季
9-11;秋季
12-2;冬季

注意:case穿透 在switch语句中,如果case控制的语句体后面不写break,将出现穿透现象,
在不判断下一个case值得情况下,向下运行,直到遇到break,或者整个switch语句结束

*/

//导包
import java.util.Scanner;

public class Demo02{
	public static void main(String[] args){
		System.out.println("请输入月份(1-12):");
		//创建对象
		Scanner sc = new Scanner(System.in);
		//接收数据
		int month = sc.nextInt();
		//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;
			//default不仅仅只能放在case下面
			default:
				System.out.println("输入月份有误");
				break;	
			case 9:
			case 10:
			case 11:
				System.out.println("秋季");
				break;
			
		}
		System.out.println("结束");
		
	}
}

循环结构

循环结构特征:重复做某件事情,具有明确的开始和停止标志

循环结构组成:
1.初始化语句:用于表示循环开启的起始状态
2.条件判断语句:用于表示循环反复执行的条件
3.循环体语句:用于表示循环反复执行的内容
条件控制语句:用于便是循环执行中每次变化的内容

循环结构对应的语法:
1.初始化语句:可以是一条或者多条语句
2.条件判断语句:使用结果值为boolean类型的表达式
3.循环体语句:任意语句,语句将被反复执行
条件控制语句:改变变量的值,控制循环是否继续向下执行,常见i++,i–

for循环语句
在这里插入图片描述

/*
for循环语句

格式:
for(初始化语句;条件判断语句;条件控制语句){
	循环语句;
}
*/

public class Demo03{
	public static void main(String[] args){
		for(int i = 0;i < 5;i++){
			System.out.println("HelloWorld");
		}
		
	}
}

数据输出

/*
数据输出

在控制台输出1-5,5-1

*/

public class Demo04{
	public static void main(String[] args){
		for(int i = 1;i < 6;i++){
			int j = 6;
			//将i的值累减到j上
			j -= i;
			System.out.println(i + "," + j);
		}
		
	}
}

求和

/*
求和:求1-5之间的数据和,并输出
*/

public class Demo05{
	public static void main(String[] args){
		int sum = 0;
		for(int i = 1;i < 6;i++){	
			//将i的值累加到sum上
			sum += i;
		}
		//循环结束,打印数据
		System.out.println(sum);
	}
}

求偶数和

/*
求偶数和:求1-100之间的偶数和,并输出
*/

public class Demo06{
	public static void main(String[] args){
		int sum = 0;
		for(int i = 1;i <= 100;i++){
			//判断一下i是不是偶数
			if(i % 2 == 0){
				//将i的值累加到sum上
				sum += i;
			}
		}
		//循环结束,打印数据
		System.out.println(sum);
	}
}

水仙花数

/*
水仙花数:在控制台输出所有的"水仙花数"
什么是水仙花数:水仙花是一个三位数,水仙花的个位,十位,百位的数字立方和等于原数
*/

public class Demo07{
	public static void main(String[] args){
		for(int i = 100;i <= 999;i++){
			//定义个位数
			int a = i % 10;
			
			//定义十位数
			int b = i / 10 % 10;
			
			//定义百位数
			int c = i / 100 % 10;
			
			//判断一下i是不是水仙花数
			if(a*a*a + b*b*b + c*c*c == i){
				//输出这个水仙花数
				System.out.println(i);
			}
		}
		
	}
}

统计

/*
统计:统计"水仙花"一共多少个,并在控制台输出个数
什么是水仙花:水仙花是一个三位数,水仙花的个位,十位,百位的数字立方和等于原数
*/

public class Demo09{
	public static void main(String[] args){
		int count = 0;
		for(int i = 100;i <= 999;i++){
			//定义个位数
			int a = i % 10;
			
			//定义十位数
			int b = i / 10 % 10;
			
			//定义百位数
			int c = i / 100;
			
			//判断一下i是不是水仙花数
			if(a*a*a + b*b*b + c*c*c == i){
				//如果i是水仙花数count就+1
				count++;
			}
		}
		//循环结束,打印count输出水仙花数
		System.out.println("水仙花数一共有" + count + "个");//四个
	}
}

while循环语句
在这里插入图片描述

/*
while循环语句
基本格式:
while(条件判断语句){
	循环语句体;
}

完整格式:
初始化语句;
while(条件判断语句){
	循环语句体;
	条件控制语句;
}

执行过程:
1.执行初始化语句
2.执行条件判断语句,如果结果为false,循环结束,如果结果是true,继续执行
3.执行循环体语句
4.执行条件控制语句
5.回到2继续
*/

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

珠穆朗玛峰

/*
珠穆朗玛峰:珠穆朗玛峰(8844.43米--8844430毫米),假如有一张纸,厚度为0.1毫米,
折叠多少次可以折成珠穆朗玛峰的高度
*/

public class Demo11{
	public static void main(String[] args){
		//初始化语句
		double i = 0.1;
		int count = 0;
		//条件判断语句
		while(i<=8844430){
			
			//没折叠一次,纸张厚度加倍
			i *= 2;
			//累加,对应折叠了多少次
			count++;
		}
		System.out.println("要折叠" + count + "次");//27次
		
	}
	
}

水仙花数-while版

/*
用while输出所有水仙花数,并统计个数
*/

public class Demo14{
	public static void main(String[] args){
		//初始化语句
		int i = 100;
		int count = 0;
		//条件判断语句
		while(i<1000){
			//个位数
			int a = i % 10;
			//十位数
			int b = i / 10 % 10;
			//百位数
			int c = i / 100;
			//判断是否满足水仙花数条件
			if(a*a*a + b*b*b + c*c*c == i){
				System.out.println("水仙花数:" + i);
				//满足条件水仙花数 + 1;
				count++;
			}
			//条件控制语句
			i++;
		}
		System.out.println("水仙花个数:" + count);
	}
	
}

do…while循环语句
在这里插入图片描述

/*
do...while循环语句

基本格式:
do{
	循环体语句;
}while(条件判断语句);

完整格式:
初始化语句
do{
	循环体语句;
	条件控制语句;
}while(条件判断语句);

执行流程:
1.执行初始化语句
2.*执行循环体语句*
3.执行条件控制语句
4.执行条件判断语句,如果结果为false,循环结束,如果结果是true,继续执行
5.回到2继续

*/

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

三种循环的区别

/*
三种循环语句的区别
for循环和while循环先判断条件是否成立,然后决定是否执行循环体(先判断后执行)
do...while循环先执行一次循环体,然后判断条件是否成立,是否继续执行循环体(先执行后判断)

for和while区别
条件控制语句所控制的自增变量归属for循环语法结构中,在for循环结束后,不能被访问
条件控制语句所控制的自增变量不归属while循环语法结构中,在while循环结束后,不能被访问

命令提示符窗口Ctrl + C可以结束死循环
*/

public class Demo13{
	public static void main(String[] args){
		/*
		
		//for循环
		for(int i = 0;i < 0;i++){
			System.out.println("HelloWorld");//不会输出"HelloWorld"
		}
		System.out.println("==========");
		//while循环
		int j = 0;
		while(j<0){
			System.out.println("HelloWorld");//不会输出"HelloWorld"
			j++;
		}
		System.out.println("==========");
		//do...while循环
		int k = 0;
		do{
			System.out.println("HelloWorld");//会输出一次"HelloWorld"
			k++;
		}while(k<0);
		
		*/
		System.out.println("==========");
		/*
		
		//for循环
		for(int i = 0;i < 3;i++){
			System.out.println("java");
		}
		System.out.println(i);//报错,i归属for循环语法结构中,在for循环结束后,不能被访问
		System.out.println("==========");
		//while循环
		int j = 0;
		while(j<3){
			System.out.println("java");
			j++;
		}
		System.out.println(j);//不报错,会输出结果3,j不归属while循环语法结构中,在while循环结束后,仍能被访问
		System.out.println("==========");
		
		*/
		System.out.println("==========");
		/*死循环
		
		//for死循环格式
		for(;;){
			System.out.println("java");
		}
		System.out.println("==========");
		//while死循环格式
		int j = 0;
		while(true){
			System.out.println("java");
			j++;
		}
		System.out.println("==========");
		//do...while死循环格式
		int k = 0;
		do{
			System.out.println("HelloWorld");
			k++;
		}while(true);
		
		*/
		
	}
}

跳转控制语句

/*
跳转控制语句
continue:用在循环中,基于条件控制下,"跳过某次"循环体内容的执行,继续执行下一次的执行
break:用在循环中,基于条件控制下,"终止"循环体内容的执行,结束整个循环
*/

public class Demo15{
	public static void main(String[] args){
		for(int i = 1;i <= 5;i++){
			if(i % 2 == 0){
			}
			System.out.println(i);//结果为1,2,3,4,5
		}
		System.out.println("========");
		for(int i = 1;i <= 5;i++){
			if(i % 2 == 0){
				continue;
			}
			System.out.println(i);//结果为1,3,5
		}
		System.out.println("========");
		for(int i = 1;i <= 5;i++){
			if(i % 2 == 0){
				break;
			}
			System.out.println(i);//没有输出结果
		}
	}
}

循环嵌套

在这里插入图片描述

/*
循环嵌套
任何语句对外都可以看成是一句话,一句代码
分支语句中包含分支语句称为分支嵌套
循环语句中包含循环语句称为循环嵌套

在控制台输出一天的小时和分钟
分钟:0 <= minute <60
小时:0 <= hour <24

*/

public class Demo16{
	public static void main(String[] args){
		for(int hour = 0;hour < 24;hour++){
			for(int minute = 0;minute < 60;minute++){
				System.out.println(hour + "时" + minute + "分");
			}
		}
	}
}

Random 随机数

在这里插入图片描述

/*
Random:产生一个随机数

步骤:
1.导包:import java.util.Random;
2.创建对象:Random r = new Random();
3.获取随机数:int i = r.nextInt(数据范围);
*/
import java.util.Random;

public class Demo17{
	public static void main(String[] args){
		Random r = new Random();
		//取十个随机数
		for(int i = 0;i < 10;i++){
			//取值范围是0 - 9,
			int number = r.nextInt(10);//nextInt(必须大于0)
			System.out.println("产生的随机数是:" + number);
		}
		System.out.println("=============");
		//取一个1-100的随机数
		int k = r.nextInt(100) + 1;//r.nextInt(100)取值范围是:0 - 99; + 1取值范围即为1 - 100
		System.out.println("1-100的随机数是:" + k);
		System.out.println("=============");
		//生成任意范围的随机数公式:int zhi = r.nextInt(范围最大值 - 范围最小值 + 1) + 范围最小值;
		for(int i = 0;i < 10;i++){
			int m = r.nextInt(50 - 20 + 1) + 20;//例如:取值(20 - 50)
			System.out.println("产生的随机数是:" + m);
		}
		
	}
}

猜数字

/*
猜数字:生成一个1 - 100的随机数,实现猜出这个数字是多少
当猜的数字比生成的数字大时,提示你猜大了
当猜的数字比生成的数字小时,提示你猜小了
当猜的数字与生成的数字相等时,提示恭喜你,猜对了
当猜的数字超出随机数取值范围时,提示输入有误
*/

//导包
import java.util.Random;
import java.util.Scanner;

public class Demo18{
	public static void main(String[] args){
		//创建Scanner对象
		Scanner sc = new Scanner(System.in);
		//创建Random对象
		Random r = new Random();
		//生成1 - 100的随机数
		int s = r.nextInt(100) + 1; 
		while(true){			
			System.out.print("你猜的数是(1 - 100):");
			//接收数据
			int number = sc.nextInt();
			//判断你猜数的大小
			if(number > s && number < 101){
				System.out.println("你猜大了");
			}else if(number < s && number > 0){
				System.out.println("你猜小了");
			}else if(number == s){
				System.out.println("恭喜你,猜对了");
				//跳出循环
				break;
			}else{
				System.out.println("输入有误");
			}
		}
		
	}
}

作业

第一题:分析以下需求并实现

1.想在控制台输出2次:"HelloWorld"   括号()里面应该填写什么? 
2.想在控制台输出7次:"HelloWorld"   括号()里面应该填写什么?
3.想在控制台输出13次:"HelloWorld"   括号()里面应该填写什么? 
public class Test01 {
		public static void main(String[] args) {
			for(int x=1; x<=10; x++) {
				if(x%3==0) {
					//()在此处填写代码
				}
				System.out.println("HelloWorld");
			}
		}
	}

第二题:分析以下需求并实现

1.打印1到100之内的整数,但数字中包含9的要跳过
2.每行输出5个满足条件的数,之间用空格分隔
3.如:1 2 3 4 5

第三题:分析以下需求,并用代码实现:

1.按照从大到小的顺序输出四位数中的个位+百位=十位+千位 的数字及个数
2.每行输出5个满足条件的数,之间用空格分隔
3.如:9999 9988 9977 9966 9955

第四题:

打印四行五列的星星
  *****
  *****
  *****
  *****

以上题目,明天公布答案

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值