java学习与感悟

Day4
流程控制
分支结构

  • if语句
  • switch语句

循环结构

  • while循环
  • do while循环

if语句
书写格式
在这里插入图片描述
在这里插入图片描述if else语句
书写格式
在这里插入图片描述
if···else if ···else语句
书写格式
在这里插入图片描述特别的
在这里插入图片描述在这里插入图片描述在这里插入图片描述switch语句
定义:在这里插入图片描述书写格式
在这里插入图片描述规则
在这里插入图片描述while语句
定义:最基本的循环语句。
书写格式
在这里插入图片描述do while 语句
书写格式
在这里插入图片描述
while与do while的区别

whiledo while
体系内java语句至少运行0次体系内java代码至少运行1次

循环语句三要素
一:控制变量的初始化
二:循环条件
三:循环控制变量的更新

运用流程控制语句实例
超市收银系统

import java.util.Scanner;

public class Supermarket {
public static void main(String[] args) {
	Scanner in = new Scanner (System.in);
	double allMoney=0;//放置用户一共花了多钱的变量;
	double appleAllMoney = 0;//放置用户当前购买东西的钱数
	System.out.println("欢迎来到本超市");
	System.out.println("我们这里有水果与文具,请问有你需要的东西吗");
	String have=in.next();
	//判断商店是否有用户所需物品种类
	switch(have){
	case "有":
		boolean bool=true;//用于进行用户购物选择循环判断的布尔
		//进行用户购物选择循环
		do{
			System.out.println("你想要买点水果还是文具?");
			String species=in.next();
			//判断用户选择种类
			switch(species){
			case"水果":
				System.out.println("我们这里的水果有苹果、香蕉、葡萄");
			//进入用户输入水果名称的正确与否的判断循环
				boolean bool2=true;//是否执行水果名称正确与否的表达式
				while(bool2){
				System.out.println("请输入你要购买的水果");
				String fruit=in.next();
				//根据用户所选水果的名称告知用户定价与用户已买金额
				switch(fruit){
				case"苹果":
					double applePrice=3.5;//苹果的单价
					System.out.println("苹果的价钱是"+applePrice+"元/斤");//告知用户苹果单价
					System.out.println("请输入你想买的斤数");
					double num=in.nextDouble();//用户输入所需苹果的斤数
					double money=applePrice*num;//计算用户此次购买多少钱的苹果
					appleAllMoney+=money;//记录用户购买的东西的钱数进行累加
					System.out.println("您已买了"+appleAllMoney+"元的东西");//告知用户共购买了多少钱的东西
					System.out.println("请问你是否还需要些别的?");
					String or=in.next();//获取用户是否还需购买
//					判断用户的输入是则继续进行
					switch(or){
					case"是":
						break;
						default:
							bool=false;//跳出用户选择物品的循环
					}
					bool2=false;
					break;
				case"香蕉":
					double bananaPrice=4;
					System.out.println("香蕉的价钱是"+bananaPrice+"元/斤");
					System.out.println("请输入你想买的斤数");
					double numBanana=in.nextDouble();
					double moneyBanana=bananaPrice*numBanana;
					appleAllMoney+=moneyBanana;
					System.out.println("您已买了"+appleAllMoney+"元的东西");
					System.out.println("请问你是否还需要些别的?");
					String orBanana=in.next();
					switch(orBanana){
					case"是":
						break;
						default:
							bool=false;
					}
					bool2=false;
					break;
				case"葡萄":
					double grapesPrice=5.5;
					System.out.println("葡萄的价钱是"+grapesPrice+"元/斤");
					System.out.println("请输入你想买的斤数");
					double numGrapes=in.nextDouble();
					double moneyGrapes=grapesPrice*numGrapes;
					appleAllMoney+=moneyGrapes;
					System.out.println("您已买了"+appleAllMoney+"元的东西");
					System.out.println("请问你是否还需要些别的?");
					String orGrapes=in.next();
					switch(orGrapes){
					case"是":
						break;
						default:
							bool=false;
					}
					bool2=false;
					break;
					default:
					System.out.println("请输入正确的水果名");	
				}}
			break;
			case"文具":

				System.out.println("我们这里的文具有铅笔、钢笔、书");
				boolean bool3=true;
				while(bool3){
				System.out.println("请输入你要购买的文具");
				String fruit=in.next();
				switch(fruit){
				case"铅笔":
					double pencilPrice=2;
					System.out.println("铅笔的价钱是"+pencilPrice+"元/根");
					System.out.println("请输入你想买的根数");
					double numPencil=in.nextDouble();
					double moneyPencil=pencilPrice*numPencil;
					appleAllMoney+=moneyPencil;
					System.out.println("您已买了"+appleAllMoney+"元的东西");
					System.out.println("请问你是否还需要些别的?");
					String or=in.next();
					switch(or){
					case"是":
						break;
						default:
							bool=false;
					}
					bool3=false;
					break;
				case"钢笔":
					double penPrice=10;
					System.out.println("钢笔的价钱是"+penPrice+"元/支");
					System.out.println("请输入你想买的支数");
					double numPen=in.nextDouble();
					double moneyPen=penPrice*numPen;
					appleAllMoney+=moneyPen;
					System.out.println("您已买了"+appleAllMoney+"元的东西");
					System.out.println("请问你是否还需要些别的?");
					String orBanana=in.next();
					switch(orBanana){
					case"是":
						break;
						default:
							bool=false;
					}
					bool3=false;
					break;
				case"书":
					double bookPrice=25.5;
					System.out.println("书的价钱是"+bookPrice+"元/本");
					System.out.println("请输入你想买的本数");
					double numBook=in.nextDouble();
					double moneyBook=bookPrice*numBook;
					appleAllMoney+=moneyBook;
					System.out.println("您已买了"+appleAllMoney+"元的东西");
					System.out.println("请问你是否还需要些别的?");
					String orGrapes=in.next();
					switch(orGrapes){
					case"是":
						break;
						default:
							bool=false;
					}
					bool3=false;
					break;
					default:
					System.out.println("请输入正确的文具名");	
				}}
				
			break;
			default:
			System.out.println("请输入正确的种类名");
			}
		}while(bool);
//		计算金额
		allMoney=appleAllMoney;//获取用户在上述循环中购买东西的总金额
		System.out.println("请付"+allMoney+"元");
		double pay=in.nextDouble();//获取用户所付钱数
		double diffValue=allMoney-pay;//用用户购买总金额减去用户实际支付金额计算用户是否付够
		//进行用户是否应该补钱
		if(diffValue>0){//当diffValue值大于0时,证明用户需要补钱
			//进入用户补钱循环
			boolean bool1=true;//用户补钱循环判断布尔
			while(bool1){
				System.out.println("你还要付"+diffValue+"元");
				double payAgain=in.nextDouble();
//				获取用户补得钱
				diffValue-=payAgain;//进行计算
//				判断用户钱是否补够
				if(diffValue==0){
//					如果补够,则进行跳出补钱循环并输出谢谢惠顾
					System.out.println("谢谢惠顾");
					bool1=false;//跳出补钱循环
				}else if(diffValue<0){//如果用户补钱超过所需补得钱数则进行找零并输出谢谢惠顾
					System.out.println("找零"+(-diffValue)+"元");
					System.out.println("谢谢惠顾");
					bool1=false;
				}
			}
		}else if(diffValue==0){//如果用户所付钱数刚好够,输出谢谢惠顾
			System.out.println("谢谢惠顾");
			bool=false;
		}else{//用户付钱大于所付金额,进行找零
			System.out.println("找零"+(-diffValue)+"元");
			System.out.println("谢谢惠顾");
		}		
		break;
	default:
		System.out.println("谢谢惠顾");
	}
	
}
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值