if、switch分支语句与for的嵌套使用以及Scanner包接收数据时的错误处理。

题1:

某银行推出了整存整取定期储蓄业务,其存期分为一年、两年、三年、五年,到期凭存单支取本息。存款年利率表如下:

存期 年利率(%)

一年 2.25

两年 2.7

三年 3.25

五年 3.6

请存入一定金额(1000起存),存一定年限(四选一),计算到期后得到的本息总额。

提示:

存入金额和存入年限均由键盘录入

本息计算方式:本金+本金×年利率×年限

import java.util.Scanner;
public class if_1_3{
	public static void main(String[] args){
		
		Scanner sr=new Scanner(System.in);
		System.out.println("请输入存款金额(1000起存):");
		int p=sr.nextInt(),t=1000,qx=0;
		double ze=0;
		if(p<t){
			System.out.println("存款金额低于1000未能办理相关储蓄业务");
			System.out.println("您的存款金额为:"+p+"元");
		}else{
			System.out.println("存款期分为:一年、两年、三年、五年");
			System.out.println("请输入存款期限:");
			Scanner sc=new Scanner(System.in);
			
			switch(qx=sc.nextInt()) {
					case 1:
						ze=p+p*0.0225*qx;
						System.out.println("到期后您的本息总额为:"+ze+"元");
						break;
					case 2:
						ze=p+p*0.027*qx;
						System.out.println("到期后您的本息总额为:"+ze+"元");
						break;
					case 3:
						ze=p+p*0.0325*qx;
						System.out.println("到期后您的本息总额为:"+ze+"元");
						break;
					case 5:
						ze=p+p*0.036*qx;
						System.out.println("到期后您的本息总额为:"+ze+"元");
						break;
					default:
						System.out.println("您输入的年限有误!");
				}
			
				
			}
		
	}
}

运行结果:

题目二:

某商场购物可以打折,具体规则如下:

普通顾客购不满100元不打折,满100元打9折;

会员购物不满200元打8折,满200元打7.5折;

不同打折规则不累加计算。

请根据此优惠计划进行购物结算,键盘录入顾客的类别(0表示普通顾客,1表示会员)和购物的折前金额(整数即可),输出应付金额(小数类型)。

import java.util.Scanner;
public class if_1_4{
	public static void main(String[] args){
		Scanner sr=new Scanner(System.in);
		System.out.println("0表示普通顾客,1表示会员");
		System.out.println("请输入顾客类别:");
		int p=sr.nextInt();
		switch(p){
			case 0:
				Scanner sc=new Scanner(System.in);
				System.out.println("请输入折前金额:");
				double r=sc.nextInt(),c=0;
				if(r<100){
					System.out.println("尊敬的顾客您为普通顾客");
					System.out.println("您的消费未满100元不进行打折优惠");
					System.out.println("您本次应付金额为:"+r+"元");
				}else{
					System.out.println("尊敬的顾客您为普通顾客");
					System.out.println("您的消费已满100元进行9折优惠");
					c=r*0.9;
					System.out.println("您本次应付金额为:"+c+"元");
				}
				break;
			case 1:
				Scanner st=new Scanner(System.in);
				System.out.println("请输入折前金额:");
				double d=st.nextInt(),a=0;
				if(d<200){
					System.out.println("尊敬的顾客您为vip会员");
					System.out.println("您的消费未满200元进行8折优惠");
					a=d*0.8;
					System.out.println("您本次应付金额为:"+a+"元");
				}else{
					System.out.println("尊敬的顾客您为vip会员");
					System.out.println("您的消费已满200元进行7.5折优惠");
					a=d*0.75;
					System.out.println("您本次应付金额为:"+a+"元");
				}
				break;
			default:
				System.out.println("您输入的顾客类别有误!");
		}
	}
}

运行结果:

题目三:

输入三个小数,比较大小,输出最大的数

代码:

import java.util.Scanner;
public class if_2_2{
	public static void main(String[] args){
		Scanner sr=new Scanner(System.in);
		System.out.println("请输入三个小数:");
		double a=0;
	for(int i=0;i<3;i++){
		System.out.println("请输入第"+(i+1)+"个小数:");
		if(i==0){
			a=sr.nextInt();
		}else{
			double b=sr.nextInt();
			a=a<b?a:b;
		}
		
	}
	System.out.println("输入三个小数中最小的为:"+a);
	}
}

运行结果:(会出现相应的错误)

 

错误处理:

a=sr.nextInt();接受的为int型数据;应该改为:a=sr.nextDouble();

double b=sr.nextInt();接受的为int型数据;应该改为:double b=sr.nextDouble();

处理后的代码:

import java.util.Scanner;
public class if_2_2{
	public static void main(String[] args){
		Scanner sr=new Scanner(System.in);
		System.out.println("请输入三个小数:");
		double a=0;
	for(int i=0;i<3;i++){
		System.out.println("请输入第"+(i+1)+"个小数:");
		if(i==0){
			a=sr.nextDouble();
		}else{
			double b=sr.nextDouble();
			a=a<b?a:b;
		}
		
	}
	System.out.println("输入三个小数中最小的为:"+a);
	}
}

 处理后运行结果:

 

 

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值