分支语句(if,switch)

目录

if

  • 某商场购物可以打折,具体规则如下:
    ​ 普通顾客购不满100元不打折,满100元打9折;
    ​ 会员购物不满200元打8折,满200元打7.5折;
    ​ 不同打折规则不累加计算。
    请根据此优惠计划进行购物结算,键盘录入顾客的类别(0表示普通顾客,1表示会员)和购物的折前金额(整数即可),输出应付金额(小数类型)。
import java.util.Scanner;
public class Demo4 {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        // 调用方法获取键盘录入的顾客类别和购物金额
        System.out.println("请输入顾客类别(0表示普通顾客,1表示会员顾客):");
        int type = sc.nextInt();
        System.out.println("请输入购物金额:");
        int money = sc.nextInt();
        // 先判断顾客类别
        if (type == 0) {
            // 普通顾客,再判断购物金额
            if (money > 0 && money < 100) {
                System.out.println("您的应付金额为:" + money);
            } else if (money >= 100) {
                System.out.println("您的应付金额为:" + money * 0.9);
            } else {
                System.out.println("您输入的金额有误");
            }
        } else if (type == 1) {
            // 会员顾客,再判断购物金额
            if (money > 0 && money < 200) {
                System.out.println("您的应付金额为:" + money * 0.8);
            } else if (money >= 200) {
                System.out.println("您的应付金额为:" + money * 0.75);
            } else {
                System.out.println("您输入的金额有误");
            }
        } else {
            System.out.println("您输入的顾客类别有误");
        }
    }
}
  • 输入一个整数,如果此数为0,则输出”👊”,如果此数为1,则输出”✌”,如果此数为2,则输出”🤚”,如果为其它,则输出”❌”!
public static void main(String[] args) {
    System.out.println("请输入一个整数:");
    Scanner sc = new Scanner(System.in);
    int number = sc.nextInt();
    if(number==0){
        System.out.println("石头");
    }else if(number==1){
        System.out.println("剪刀");
    } else if(number==2){
        System.out.println("布");
    }else{
        System.out.println("错误");
        }
    }
  • 输入三个数比较大小,输出最大的数。
System.out.println("请输入三个数:");
  Scanner sc = new Scanner(System.in);
  String x=sc.nextLine();
  String y=sc.nextLine();
  String z=sc.nextLine();
     //把数字类型的字符串转换成double类型
  Double a=Double.parseDouble(x);
  Double b=Double.parseDouble(y);
  Double c=Double.parseDouble(z);
  if(a>b){
   if(a>c){
    System.out.println("最大的数:"+a);
   }
   else
   {
    System.out.println("最大的数:"+c);;
   }
  }
  else
  {
   if(b>c){
    System.out.println("最大的数:"+b);
   }
   else
   {
    System.out.println("最大的数:"+c);
   } 
  }
}
  • 输入一个整数,如果输入的数大于等于1000,那么输出“输入的数>=1000”,否则的话就输出“输入的<1000”。
public static void main(String[] args) {

    System.out.println("输入一个整数:");
    Scanner sc = new Scanner(System.in);
    int number = sc.nextInt();
    if(number>=1000){
        System.out.println("输入的数>=1000");
    }else{
        System.out.println("输入的数<1000");
       }
   }
  • 输入三个int型的数据,放入到a,b,c三个变量中去,使用条件结构与交换逻辑将这三个变量中的值从小到大排列。
public static void main(String[] args) {

    System.out.println("请输入三个整数:");
    Scanner sc = new Scanner(System.in);
    int a = sc.nextInt();
    int b = sc.nextInt();
    int c = sc.nextInt();

    int max =a;
    if(b>a&&b>c){
        max = b;
    }
    if(c>a&&c>b){
        max = c;
    }
    int min = a;
    if(b<a&&b<c){
        min = b;
    }
    if(c<a&&c<b){
        min = c;
    }
    int middle = (a+b+c)-(max+min);
    System.out.println(min+","+middle+","+max);
       }
    }
  • 输入一个年份,判是闰年还是平年。
public static void main(String[] args) {

    System.out.println("请输入一个年份:");
    Scanner sc = new Scanner(System.in);
    int age = sc.nextInt();
    if(age%4==0||age%100==0||age%400==0){
        System.out.println(age+"是闰年!");
    }else{
        System.out.println(age+"是平年!");
        }
  • 手动输入一个整型会员号, 如果用户输入的是4位数字, 输出登录成功, 如果用户输入的不是4位数字, 输出“您输入的会员号有误”。
public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        System.out.println("请输入会员号:");
        int memberNo = sc.nextLong();
        if (memberNo>=1000&&memberNo<10000)
        {
            System.out.println("登录成功");
            System.out.println("欢迎会员:"+memberNo+"号");
        }else
        {
            System.out.println("您输入的会员号有误");
        }
    }
  • 岳小鹏参加Java考试,他和父亲岳不群达成承诺:
    如果:
    成绩为100分时,奖励一辆BMW;
    成绩为(80,99]时,奖励一台iphone xs max;
    当成绩为[60,80]时,奖励一个 iPad;
    其它时,什么奖励也没有。
    请从键盘输入岳小鹏的期末成绩,并加以判断
import java.util.Scanner;

public class AfterClass{
	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);
		
		System.out.println("开始");
		
		System.out.println("请输入一个分数:");
		int score = sc.nextInt();
		//数据测试:正确数据,边界数据,错误数据
		if(score>100 || score<0){
			System.out.println("你输入的分数有误");
		}else if(score == 100){
			System.out.println("奖励一辆BMW");
		}else if(score>80 && score<=99){
			System.out.println("奖励一台iphone xs max");
		}else if(score>=60 && score<=80){
			System.out.println("奖励一个 iPad");
		}else{
			System.out.println("奖励没有");
		} 
		
		System.out.println("结束");
	}
}
  • 编写程序,声明2个int型变量并赋值。判断两数之和,如果大于等于50,打印“hello world!” 其他情况打印 “hello China!”
public static void main(String[] args) {
		 
		System.out.println("开始");	
		int a = 23;
		int b = 24;
		
		if(a + b >=50){
			System.out.println("hello world!");
		}else{
			System.out.println("hello China!");
		} 
		System.out.println("结束");
	}
  • 编写程序,声明2个double型变量并赋值。判断第一个数大于10.0, 且第2个数小于20.0,打印两数之和。否则,打印两数的乘积。
public static void main(String[] args) {
		 
		System.out.println("开始");
		
		double a = 23.3;
		double b = 24.1;
		double c ;
		
		if(a >10 && b <20){
			c = a + b;
			System.out.println("两数之和:"+ c);
		}else{
			c = a*b;
			System.out.println("两数的乘积:"+ c);
		} 
		
		System.out.println("结束");
	}
  • 编写程序:由键盘输入三个整数分别存入变量num1、num2、num3,对它们进行排序(使用 if-else if-else),并且从小到大输出。
import java.util.Scanner;
public class AfterClass2{
    static int mum1,mum2,mum3,max,middle,min;

    public static void main(String[] args) {
        System.out.println("输入三个整数:");
        Scanner sc = new Scanner(System.in);
        mum1 = sc.nextInt();
        mum2 = sc.nextInt();
        mum3 = sc.nextInt();

        if(mum2>mum1 && mum2>mum3){
            max = mum2;
        }else if(mum3>mum1 && mum3>mum2){
            max = mum3;
        }else {
            max = mum1;
        }

        if(mum2<mum1 && mum2<mum3){
            min = mum2;
        }else if(mum3<mum1 && mum3<mum2){
            min = mum3;
        }else {
            min = mum1;
        }
        middle = (mum1 + mum2 + mum3)-(max + min);
        System.out.println(min+","+middle+","+max);
    }
  • 我家的狗5岁了,5岁的狗相当于人类多大呢?其实,狗的前两年每 一年相当于人类的10.5岁,之后每增加一年就增加四岁。那么5岁的狗 相当于人类多少年龄呢?应该是:10.5 + 10.5 + 4 + 4 + 4 = 33岁。
    ​ 编写一个程序,获取用户输入的狗的年龄,通过程序显示其相当于人 类的年龄。如果用户输入负数,请显示一个提示信息。
import java.util.Scanner;

public class AfterClass2{
	  	
    public static void main(String[] args) {
		System.out.println("输入的狗的年龄:");
        Scanner sc = new Scanner(System.in);
        int mum1 = sc.nextInt();
		double mum2 = 0;
        
        if(mum1>=0 && mum1<=2){
			mum2 = 10.5*mum1;
			System.out.println("狗的"+mum1+"年龄相当于人类"+mum2+"年龄");
           
        }else if(mum1>2){
			mum2 = 10.5*2+4*(mum1-2);
			System.out.println("狗的"+mum1+"年龄相当于人类"+mum2+"年龄");
		}else{
			System.out.println("你输入狗年龄有误");
		} 
         
		}
    }
  • 大家都知道,男大当婚,女大当嫁。那么女方家长要嫁女儿,当然要提出一定的条件:高:180cm以上;富:财富1千万以上;帅:是。(注意:不用管单位)
    如果这三个条件同时满足,则:“我一定要嫁给他!!!”
    如果三个条件有为真的情况,则:“嫁吧,将就过日子。”
    如果三个条件都不满足,则:“不嫁!”
public static void main(String[] args) {

        int height = 180;
        int fu = 1000;
        boolean shuai = false;

        if(height>=180 && fu>=1000 && shuai){
            System.out.println("我一定要嫁给他!!!");
        }else if(height>=180 || fu>=1000 || shuai){
            System.out.println("嫁吧,将就过日子。");
        }else{
            System.out.println("不嫁!");
        }
    }
}

switch

  • switch后面使用的表达式可以是哪些数据类型的。
    基本数据类型:byte, short, char(字符), int
    包装数据类型:Byte, Short, Character, Integer
    枚举类型:Enum
    字符串类型:String(Jdk 7+ 开始支持)

  • 谈谈你对三元运算符、if-else和switch-case结构使用场景的理解。
    三元运算符和 switch-case 都可以用 if-else 来表示。当数据类型满足且分支不是很多的时候可以用 三元运算符和 switch-case 来写。

  • 模拟计算器功能,对键盘录入的两个int类型的数据进行加、减、乘、除的运算,并打印运算结果。
    要求:
    ​ 键盘录入三个整数,其中前两个整数代表参加运算的数据,第三个整数为要进行的运算(1:表示加法运算,2:表示减法运算,3:表示乘法运算,4:表示除法运算),演示效果如下:
    ​ 请输入第一个整数: 30
    ​ 请输入第二个整数: 40
    ​ 请输入您要进行的运算(1:表示加法,2:表示减法,3:表示乘法,4:表示除法): 1
    ​ 控制台输出:30+40=70

import java.util.Scanner;
public class Demo2 {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
         
        System.out.println("请输入第一个整数:");
        int num1 = sc.nextInt();
        System.out.println("请输入第二个整数:");
        int num2 = sc.nextInt();
        System.out.println("请输入您要进行的运算(1:表示加法,2:表示减法,3:表示乘法,4:表示除法)");
        int type = sc.nextInt();
        // 使用switch语句判断计算类型,并输出相应的结果
        switch (type) {
            case 1:
                System.out.println(num1 + " + " + num2 + " = " + (num1 + num2));
                break;
            case 2:
                System.out.println(num1 + " - " + num2 + " = " + (num1 - num2));
                break;
            case 3:
                System.out.println(num1 + " * " + num2 + " = " + (num1 * num2));
                break;
            case 4:
                 //除法有可能有小数,所以要用到强制转换
                System.out.println(num1 + " / " + num2 + " = " + ((double)num1/ num2));
                break;
            default:
                System.out.println("您输入的运算类别有误");
                break;
        }
    }
}
  • 从键盘分别输入年、月、日,判断这一天是当年的第几天 。
    注:判断一年是否是闰年的标准: 1)可以被4整除,但不可被100整除 或 2)可以被400整除
import java.util.Scanner;

public class SwitchYing {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        System.out.println("请输入年份:");
        int year = sc.nextInt();
        System.out.println("请输入月份:");
        int month = sc.nextInt();
        System.out.println("请输入日:");
        int days = sc.nextInt();
        int sumDays = 0;
        if (year < 1 || month > 12 || month < 1 || days > 31 || days < 1) {
            System.out.println("请输入正确的日期");
        } else {
            switch (month) { 
                case 12:
                    sumDays += 30;
                    //没有写break;会一直往下执行
                case 11:
                    sumDays += 31;
                case 10:
                    sumDays += 30;
                case 9:
                    sumDays += 31;
                case 8:
                    sumDays += 31;
                case 7:
                    sumDays += 30;
                case 6:
                    sumDays += 31;
                case 5:
                    sumDays += 30;
                case 4:
                    sumDays += 31;//举个例子,4月3号,刚开始sumDays=0,从case4进去,加上三月的31天
                case 3:
                    sumDays += 28;//再进去case3,在加上2月的28天
                case 2:
                    sumDays += 31;//再进去case2,在加上1月的31天
                case 1:
                    sumDays += days;//在加case 1,加上日days
                    break;//结束
            }
            if ((year % 4 == 0 && year % 100 != 0) || year % 400 == 0) {
                //判断如果是闰年,并且输入的月份大于2,则在原有的日期上加上1天
                if (month > 2) {
                    sumDays += 1; 
                }
                System.out.println("这是" + year + "年" + "的第" + sumDays + "天");
            }
        }
    }
}
  • 编写一个程序,为一个给定的年份找出其对应的中国生肖。中国的生肖基于12年一个周期, 每年用一个动物代表:rat(鼠)、ox(牛)、tiger(虎)、rabbit(兔)、dragon(龙)、snake(蛇)、horse(马)、sheep(羊)、monkey(猴)、 rooster(鸡)、dog(狗)、pig(猪)。
    提示:2019年:猪 2019 % 12 == 3
import java.util.Scanner;

public class AfterClass2 {
    public static void main(String[] args) {
        Scanner scan = new Scanner(System.in);
        System.out.println("请输入年份:");
        int year = scan.nextInt();
        int mum = year%12;

        switch (mum){
            case 0:
                System.out.println(year+"是属于猴");
                break;
            case 1:
                System.out.println(year+"是属于鸡");
                break;
            case 2:
                System.out.println(year+"是属于狗");
                break;
            case 3:
                System.out.println(year+"是属于猪");
                break;
            case 4:
                System.out.println(year+"是属于鼠");
                break;
            case 5:
                System.out.println(year+"是属于牛");
                break;
            case 6:
                System.out.println(year+"是属于虎");
                break;
            case 7:
                System.out.println(year+"是属于兔");
                break;
            case 8:
                System.out.println(year+"是属于龙");
                break;
            case 9:
                System.out.println(year+"是属于蛇");
                break;
            case 10:
                System.out.println(year+"是属于马");
                break;
            case 11:
                System.out.println(year+"是属于羊");
        }
        }
    }
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值