java 第三章 > switch语句,for循环,while循环

switch语句

  • 格式
switch(表达式){
    case1:
        语句体1;
        break;
    case2:
        语句体2;
        break;
    ...
    default:
        语句体n+1;
        break;
}

格式说明

  • 表达式:(将要匹配的值)取值为byte,short,int,char,jdk5以后的可以使枚举,jdk7以后可以使String.
  • case:后面跟的是要和表达式进行比较的值(被比较的值)
  • break:表示中断,结束的意思
  • default表示所有情况都不匹配时,就执行该内容

流程

  1. 计算表达式的值
  2. 一次和case后面的值进行比较,匹配就执行,遇到break结束
  3. 如果都不匹配,就执行default,然后结束
switch(week)
    case 1 :
    语句体
    break;

注意事项

  1. case的值不允许重复
  2. case后面只能是常量

案例

import java.util.Scanner;

public class Week{
	public static void main(String[] args){
		//创建对象
		Scanner sc = new Scanner(System.in);
		//控制台提示语
		System.out.println("用户请输入星期数(如果是星期一就输入:1):");
		//调用对象,接收数据
		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;
		}
	}
}

case穿透现象

case省略break,则穿透(继续执行下一条语句),(不匹配)直到看到break结束.

case 1:
case 2:
case 3:
case 4:
    语句体;
    break;

//全部省略直接执行语句体

循环语句

for循环

具有开始和结束标志

格式

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

执行流程

  1. 执行初始化语句
  2. 执行条件判断语句,看结果是true还是false,;false循环结束,true继续执行;
  3. 执行循环体语句
  4. 执行条件控制语句
  5. 回到第二步
案例1

输出1-5和5-1

public class Text01 {
		public static void main(String[] args){
			int a = 0;
			int b = 6;
			for(int i = 1;i <= 5; i++){
				a++;
				System.out.print(a);
			}
			System.out.println(" ");
			System.out.println("---------------------------------");
			for(int i = 1;i <= 5; i++){
				b--;
				System.out.print(b);
			}
			
			
		

	  }

	}
案例2

求1-5的数据和

public class Text02 {
		public static void main(String[] args){
			int a = 0;
			for(int i = 1;i <= 5; i++){
				a += i;
			}
			System.out.print(a);
	  }

	}
案例3

求1-100的偶数和

public class Text03 {
		public static void main(String[] args){
			int a = 0;
			for(int i = 1;i <= 100; i++){
					if(i % 2 == 0){
						a += i;
					}
			
			}
			System.out.print(a);
	  }

	}
案例4

水仙花数

public class Text04 {
		public static void main(String[] args){
			for(int i = 100;i <= 999; i++){
				int ge = i % 10;
				int shi = i / 10 % 10;
				int bai = i / 100;
				int temp = (ge * ge * ge) + (shi * shi * shi) + (bai * bai *bai);
					if(temp == i){
						System.out.println(i);
					}
			
			}
			
	  }

	}
案例5

水仙花数(每行打印两个)

public class Text04 {
		public static void main(String[] args){
			for(int i = 100;i <= 999; i++){
				int ge = i % 10;
				int shi = i / 10 % 10;
				int bai = i / 100;
				int temp = (ge * ge * ge) + (shi * shi * shi) + (bai * bai *bai);
					if(temp == i){
						System.out.println(i);
					}
			
			}
			
	  }

	}

while循环

格式

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

完整格式

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

执行流程

  1. 执行初始化语句
  2. 执行条件判断语句(false结束,true继续执行)
  3. 执行循环体语句
  4. 执行条件控制语句
  5. 回到第二步
案例

珠峰高8844.43米,8844430毫米,一张纸厚度为0.1毫米,需要折叠几次可以达到珠峰的高度

public class ZhuFen {
		public static void main(String[] args){
			//定义,纸张厚度计数
			double paper = 0.1;
			int count = 0;
			while(paper <= 8844430){
				paper *= 2;
				count++;
			}
			System.out.println("一张纸需要折叠" + count + "次可达到珠峰厚度");
				
	  }

	}
do…while语句

格式

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

完整格式

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

执行流程

  1. 执行初始化语句
  2. 执行循环体语句
  3. 执行条件控制语句
  4. 执行条件判断语句
  5. 回到第二步
三中循环区别
  • for循环和while循环先判断是否成立,然后决定是否执行(先判断后执行)
  • do…while循环先执行后判断是否成立(先执行后判断)
for循环和while循环的区别
  • for循环,条件语句所控制的自增变量在接收循环后不能被再次访问
  • while循环的变量在结束后还可以被继续使用
三种循环的场景
  • 明确循环次数,推荐使用for循环
  • 不明确循环次数,建议使用while循环
  • do…while循环,很少使用
死循环

for循环

for(;;)

while循环

while(true)

do…while

do{
    
}while(true)
跳转控制语句

跳过语句 continue

if(i == 4){
    contiue;
}

中断语句break

if(i == 60){
    break;
}
案例

程序运行后和多次查看减肥计划,直到输入0 程序结束

import java.util.Scanner;

public class JianFei{
	public static void main(String[] args){
		//循环嵌套
		lo: while(true){
			//控制台提示语
			System.out.println("用户请输入星期数(如果是星期一就输入:1,无需查看则输入:0):");
			//创建对象
			Scanner sc = new Scanner(System.in);
			//调用对象,接收数据
			int week = sc.nextInt();
			//判断语句
			switch(week){
				case 0 :
					break lo;
				case 1 :
					System.out.println("-------------------------------------------------");
					System.out.println("跑步");
					break;
				case 2 :
					System.out.println("-------------------------------------------------");
					System.out.println("游泳");
					break;
				case 3 :
					System.out.println("-------------------------------------------------");
					System.out.println("慢走");
					break;
				case 4 :
					System.out.println("-------------------------------------------------");
					System.out.println("动感单车");
					break;
				case 5 :
					System.out.println("-------------------------------------------------");
					System.out.println("拳击");
				break;
				case 6 :
				System.out.println("-------------------------------------------------");
					System.out.println("爬山");
					break;
				case 7 :
					System.out.println("-------------------------------------------------");
					System.out.println("好好吃一顿");
					break;
					default :
					System.out.println("-------------------------------------------------");
					System.out.println("您的输入有误");
					break;
			}
		}
	}
}
random(产生随机数)

作用:

用于产生一个随机数

使用步骤:

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

猜数字

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

public class CaiShuZi{
	public static void main(String[] args){
		//创建对象
		Random r = new Random();
		Scanner sc = new Scanner(System.in);
		//获取随机数
		int num = r.nextInt(100) + 1;
		//循环嵌套
		lo:while(true){
			System.out.println("请您输入您猜的数字(1-100)(提前退出请输入0)");
			//获取用户输入的数据
			int number = sc.nextInt();
			//判断用户输入的数据
			if(number == num){
				System.out.println("恭喜您猜中数字!");
				break lo;
			}
		if(number > num){
			System.out.println("很遗憾,您输入的数字大了");
			System.out.println("--------------------------------------------");
		}else if(number < num && number != 0){
			System.out.println("很遗憾,您输入的数字小了");
			System.out.println("--------------------------------------------");
		}else if(number == 0){
			break lo;
		}
		}
	}
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

Aming_sth

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

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

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

打赏作者

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

抵扣说明:

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

余额充值