java基础-流程控制-day04

红豆生南国 是很遥远的事情 / 2023-09-02 / 原文

目录
  • 1. if单分支
  • 2. if else 多分支
  • 3. if else双分支
  • 4. 随机生成一定区间的整数
  • 5 switch

1. if单分支

public class TestIf01{
	public static void main(String[] args){
		// 对三个数(1-6) 求和
		int num1 = 6;
		int num2 = 6;
		int num3 = 5;
		
		int sum = 0;
		sum += num1;
		sum += num2;
		sum += num3;
		
		System.out.println("总和:"+sum);
		
		// >=14 一等奖
		// >=10 二等奖
		// >=6  三等奖
		// <    四等奖
		
		if (sum>=14){
			System.out.println("一等奖");
		}
		
		if (sum<14&&sum>=10){
			System.out.println("二等奖");
		}
		
		if (sum<10&&sum>=6){
			System.out.println("三等奖");			
		}
		if (sum<6){
			System.out.println("四等奖");			
		}
	}
}

2. if else 多分支

public class TestIf02{
	public static void main(String[] args){
		// 对三个数(1-6) 求和
		int num1 = 6;
		int num2 = 6;
		int num3 = 5;
		
		int sum = 0;
		sum += num1;
		sum += num2;
		sum += num3;
		
		System.out.println("总和:"+sum);
		
		// >=14 一等奖
		// >=10 二等奖
		// >=6  三等奖
		// <6   四等奖
		
		if (sum>=14){
			System.out.println("一等奖");
		}else if(sum>=10){//默认隐含了<14的条件
			System.out.println("二等奖");			
		}else if(sum>=6){
			System.out.println("三等奖");				
		}else{//注意这里不写if 默认隐含了<6的条件
			System.out.println("四等奖");
		}
		
	}
}

3. if else双分支

可以改成 ?:结构

public class TestIf03{
	public static void main(String[] args){
		// 对三个数(1-6) 求和
		int num1 = 6;
		int num2 = 6;
		int num3 = 5;
		
		int sum = 0;
		sum += num1;
		sum += num2;
		sum += num3;
		
		System.out.println("总和:"+sum);
		

		// >=10 中奖
		// <10 没中奖
		
		if (sum>=10){
			System.out.println("中奖");

		}else{
			System.out.println("没中奖");
		}
		
		
		System.out.println(sum>=10?"中奖":"没中奖");
	}
}

4. 随机生成一定区间的整数

	random   --> [0.0, 1.0)  
	*6       --> [0.0, 6.0)
	int      --> [0, 5]
	+1       --> [1, 6]

	(int)(Math.random()*6) +1



	随机生成 32--68之间的一个数
	68-32=36


	random   --> [0.0, 1.0)  
	*35       --> [0.0, 35.0)
	int    --> [0, 34)
	+32    --> [32, 68)

	(int)(Math.random()*35) +32
public class TestIf04{
	public static void main(String[] args){
		
		// 随机生成三个数(1-6) 求和
		int num1 = (int)Math.random()*6 +1;
		System.out.println("num1: "+num1);
		
		int num2 = (int)(Math.random()*6) +1;
		System.out.println("num2: "+num2);

		int num3 = (int)(Math.random()*6) +1;
		System.out.println("num3: "+num3);

		
		int sum = 0;
		sum += num1;
		sum += num2;
		sum += num3;
		
		System.out.println("总和:"+sum);
		

		// >=10 中奖
		// <10 没中奖
		
		if (sum>=10){
			System.out.println("中奖");

		}else{
			System.out.println("没中奖");
		}
		
	}
}

练习1

import java.util.Scanner;

public class TestIf05{
	public static void main(String[] args){
		//输入积分
		Scanner sc = new Scanner(System.in);
		System.out.println("请输入积分:");
		
		if (sc.hasNextInt()==true){
			int score = sc.nextInt();
		    System.out.println("输入积分是:"+score);
			
			if (score>=0){
				//判断折扣
				double discount = 0;
				if (score>=8000){
					discount = 0.6;
				}else if(score>=4000){
					discount = 0.7;
				}else if(score>=2000){
					discount = 0.8;
				}else{
					discount = 0.9;
				}
				System.out.println("折扣:"+discount);
			}else{
			    System.out.println("输入积分不能为负数!");
			}

		}else{
			System.out.println("输入积分不合法");
		}
			

	}
}

练习2;
小朋友搬桌子:
年龄大于7岁,可以搬桌子;
如果年龄大于5岁,性别是男,可以搬桌子;
否则不可以搬动桌子,提示:你还太小了

逻辑分析:

  1. 年龄大于7 男孩女孩都能搬
  2. 年龄小于5 都不能
  3. 年龄 5--7之间 只有男孩才能搬
import java.util.Scanner;

public class TestIf06{
	public static void main(String[] args){
		
		Scanner sc = new Scanner(System.in);
		System.out.println("请输入年龄:");
		
		int age = sc.nextInt();
		if(age>7){
			System.out.println("yes");			
		}else if(age>5){
			System.out.println("请输性别 男--1 女--0");
			int sex = sc.nextInt();
			if(sex==1){
				System.out.println("yes");	
			}else{
				System.out.println("no");
			}
		}else{
			System.out.println("no");				
		}
	}
}

import java.util.Scanner;

public class TestIf06{
	public static void main(String[] args){
		
		Scanner sc = new Scanner(System.in);
		System.out.println("请输入年龄:");
		
		int age = sc.nextInt();
		if(age>7){
			System.out.println("yes");			
		}else if(age>5){
			System.out.println("请输性别: 男 女");
			String input = sc.next();
			char sex = input.charAt(0);
			if(sex=='男'){
				System.out.println("yes");	
			}else{
				System.out.println("no");
			}
		}else{
			System.out.println("no");				
		}
	}
}

5 switch

            实现一个功能:
            根据给出的学生分数,判断学生的等级:
            >=90  -----A
            >=80  -----B
            >=70  -----C
            >=60  -----D
            <60   -----E
import java.util.Scanner;

public class TestIf07{
	public static void main(String[] args){
		Scanner sc = new Scanner(System.in);
		System.out.println("请输入分数:");
		
		int score = sc.nextInt();
		/*
		if (score>=90){
			System.out.println("A");
		}else if(score>=80){
			System.out.println("B");
		}
        */		
        switch(score/10){
			case 10:System.out.println("A");break;
			case 9:System.out.println("B");break;
			case 8:System.out.println("C");break;
			case 7:System.out.println("D");break;
			case 6:System.out.println("E");break;
			case 5:
			case 4:
			case 3:
			case 2:
			case 1:
			case 0:
			default:System.out.println("成绩输入错误");

		}	
		/*
		【4】为了防止代码的“穿透”效果:在每个分支后面加上一个关键词break,遇到break这个分支就结束了
        【5】类似else的“兜底”“备胎”的分支:default分支
		*/
	}
}