Java第一阶段(2)【 控制语句 】11.7

控制语句

  • 分支/判断语句: if-else语句 、switch语句
  • 循环语句 for循环while循环do…while循环
  • 与程序跳转相关的其他语句 breakcontinuereturn

if语句

  1. 简约版
    if(条件){
    如果条件成立,执行该语句;
    }

  2. 完整版
    if(条件){
    如果条件成立,执行语句1;
    }else{
    条件不成立,执行语句2;
    }

  3. 豪华版
    if(条件1){
    如果条件1成立,执行语句1
    }else if(条件2){
    如果条件2成立,执行语句2
    }else if(条件3){
    如果条件3成立,执行语句3
    }…

    }else{
    如果以上条件都不成立,执行这里面的代码
    }

  • if中条件的结果一定是布尔类型
  • 如果都是if语句 ,所有if语句都会被执行
  • 加了else的if语句 效率会比全是if的效率高
  • if:万能的(判断范围)

switch语句

  1. switch(值或表达式){
    case 具体的值1:   (类型必须和小括弧中的 数据类型保持一致)
    如果匹配上值1,就执行这里的代码
    break;   (在switch中代表结束这个switch)
    case 具体的值2:
    如果匹配上值2,就执行这里的代码
    break;
    case 具体的值3:
    如果匹配上值3,就执行这里的代码
    break;

    default:
    如果以上的值都不匹配,就会走这里的代码
    break;
    }
//代码呈现
switch(int i){
	case 1:
		int a = 1;
		break;
	case 2:
		int a = 2;
		break;
	case 3:
		int a = 3;
		break;
	default:
		int a = 4;
		break;
}
  • switch中的值或表达式一定是byteshortintchar(从jdk1.7开始支持String)
  • switch:固定的几个选项(10个以内)
  • 特点 :穿透现象

键盘输入

  1. 创建键盘输入的对象
    Scanner s =new Scanner(System.in);
  2. 调用键盘输入对象的输入int类型的整数的方法,控制台会等待用户输入
    System.out.println(“请输入一个分数:”);
    int score=s.nextInt();   (将键盘输入赋值给 score )
  3. 随机数的对象 Random
    Random r = new Random();
    int score = r.nextInt(3);  (随机一个0~2之间的整数 )

快捷键

  • 快速多行注释: ctrl + /
  • 快速补充:alt + /  如:mainsyso
  • 快速格式化:ctrl + shift + F

练习

1. 商品换购系统

满100元可参与换购
手动输入本次消费的金额:满100元可
选项一: +1元换购鼠标
选项二: +5元换购键盘
选项三: +10元换购充电宝
选项四: +20元换购移动硬盘
根据输入的选项来判断换购的物品,并显示最终消费
否则直接结算显示消费金额。

package test;
import java.util.Scanner;
//商品换购系统
public class shopping {
	public static void main(String[] args) throws InterruptedException {
		//全局变量k,用于do while循环
		int k=1;
		//全局变量sum,用于统计消费金额
		double sum = 0;
		do{
			//键盘输入Scanner
			Scanner s = new Scanner(System.in);
			System.out.println("请输入本次消费的金额:");
			double money = s.nextInt();
			if (money < 100 && money > 0) {
				System.out.println("本次消费金额不足100元,无法换购,请继续消费");
				//结束当前循环,返回开始进行下次循环
				continue;
			} else if (money >= 100) {
				System.out.println("本次消费的金额:" + money + "元,可参与换购");
				System.out.println("选项一: +1元换购鼠标");
				System.out.println("选项二: +5元换购键盘");
				System.out.println("选项三: +10元换购充电宝");
				System.out.println("选项四: +20元换购移动硬盘");
				System.out.println("请输入您想换购的选项(1,2,3,4)");
				//输入选择的选项并赋值给choose
				int choose = s.nextInt();

				//延迟1秒
				Thread.sleep(1000);
				System.out.println("电脑正在计算");
				Thread.sleep(1000);

				//如果选择1
				if (choose == 1) {
					money = money + 1;
					System.out.println("换购鼠标成功,本次消费" + money + "元");
				}
				//如果选择2
				if (choose == 2) {
					money = money + 5;
					System.out.println("换购键盘成功,本次消费" + money + "元");
				}
				//如果选择3
				if (choose == 3) {
					money = money + 10;
					System.out.println("换购充电宝成功,本次消费" + money + "元");
				}
				//如果选择4
				if (choose == 4) {
					money = money + 20;
					System.out.println("换购移动硬盘成功,本次消费" + money + "元");
				}
			} else {
				System.out.println("金额有误,请重新输入");
				continue;
			}

			Scanner a = new Scanner(System.in);
			System.out.println("您要继续换购吗?  1.继续  2.回家了");
			k = a.nextInt();
			if(k!=1&&k!=2){
				System.out.println("违反规则输入,本次购物作废,请重新换购");
				continue;
			}
			//之前总消费金额加上这次的金额
			sum = sum+money;
		}
		//当k不等于2的时候循环,等于2时跳出循环
		while(k!=2);
		System.out.println("总共消费了"+sum+"元,"+"回家看电视了~");
	}
}

2. 机票订购系统

假设机票的原价是1000元。
根据淡季,旺季 以及 头等舱 经济舱 来判断机票的最终价格。
首先用户输入选择旅游的时间 :1淡季 2旺季
然后继续输入选择舱位:1头等舱 2经济舱
最后显示最终的机票价格
若输入其他数字则提示信息输入有误并结束程序
注: 5 6 7月, 9 10 11月为旺季,其他为淡季,
淡季经济舱打6折 ,头等舱打7折
旺季经济舱打8折,头等舱打9折

package test;
import java.util.Scanner;
//	机票订购系统
public class air_ticket {
	public static void main(String[] args) throws InterruptedException {
		// 全局变量k,用于do while循环
		int k = 1;
		// 全局变量space,用于选择的舱位
		int space = 0;
		// 全局变量sum,用于统计总车票费
		double sum = 0;
		// 全局变量ticket,用于票价
		double ticket = 1000;
		do {
			//局部变量month_choose,用于选择旅游时间
			int month_choose;
			//键盘输入
			Scanner s = new Scanner(System.in);
			System.out.println("请输入旅游的时间(1-12):");
			int month = s.nextInt();
			if (month <= 0 || month > 12) {
				System.out.println("您不在地球,请返回地球旅游");
				continue;
			}

			do {
				System.out.println("请选择您想要的舱位:1.头等舱  2.经济舱");
				space = s.nextInt();
				if (space != 1 & space != 2)
					System.out.println("请选择正确的舱位");
			} while (space != 1 & space != 2);

			//延迟输入1秒
			Thread.sleep(1000);
			System.out.println("电脑正在计算");
			Thread.sleep(1000);

			if (month >= 5 && month <= 11 && month!=8) {
				System.out.print("您旅游的时间是旺季,");
				if (space == 1) {
					ticket = ticket * 0.9;
					System.out.println("选择的是头等舱");
					System.out.println("为您打了9折,最终的票价为" + ticket + "元");
				}
				if (space == 2) {
					ticket = ticket * 0.8;
					System.out.println("选择的是经济舱");
					System.out.println("为您打了8折,最终的票价为" + ticket + "元");
				}
			} else if (month <= 0 || month > 12) {
				System.out.println("您不在地球,请返回地球旅游");
				continue;
			} else {
				System.out.print("您旅游的时间是淡季,");
				if (space == 1) {
					ticket = ticket * 0.7;
					System.out.println("选择的是头等舱");
					System.out.println("为您打了7折,最终的票价为" + ticket + "元");
				}
				if (space == 2) {
					ticket = ticket * 0.6;
					System.out.println("选择的是经济舱");
					System.out.println("为您打了6折,最终的票价为" + ticket + "元");
				}
			}
			
			Scanner a = new Scanner(System.in);
			System.out.println("您要继续订票吗? 1.继续  2.关闭");
			k = a.nextInt();
			if(k!=1&&k!=2){
				System.out.println("违反规则输入,本次订票作废,请重新订票");
				continue;
			}
			//上次总票价加上这次的票价
			sum = sum + ticket;
		} while (k != 2);
		System.out.println("此次订票总共花费" + sum + "元,欢迎下次订票");
	}
}

3. 猜拳游戏

玩家出拳 判断出拳文字 (判断玩家输入有误情况)
电脑出拳 判断出拳的文字
判断胜负

package test;
import java.util.Random;
import java.util.Scanner;
//猜拳游戏
public class guess2 {
	public static void main(String[] args) throws InterruptedException  {
		int k =1;
		int win = 0;
		int deuce = 0;
		int lose = 0;
		do{
			Scanner s = new Scanner(System.in);
			System.out.println("请输入你想出的(1.石头 2.剪刀 3.布 0.退出游戏):");
			int guess = s.nextInt();
			if(guess ==1){
				System.out.println("你选择出石头");
			}else if(guess ==2){
				System.out.println("你选择出剪刀");
			}else if(guess == 3){
				System.out.println("你选择出布");
			}else if(guess == 0){
				System.out.println("退出游戏");
				break;
			}else{
				System.out.println("不存在,请重新选择");
				continue;
			}
			
			//生成随机数
			Random r = new Random();
			//+1的目的是因为,nextInt(3)的结果会是 0,1,2 为了得到1,2,3 必须+1
			int computer = r.nextInt(3)+1;
			Thread.sleep(1000);
			System.out.println("电脑正在思考");
			Thread.sleep(1000);
			if(computer == 1){
				System.out.println("电脑选择出石头");
			}else if(computer ==2){
				System.out.println("电脑选择出剪刀");
			}else{
				System.out.println("电脑选择出布");
			}
			
			Thread.sleep(1000);
			//玩家获胜有这三种可能:玩家出石头,电脑出剪刀;玩家出剪刀,电脑出布;玩家出布,电脑出石头
			if((guess==1&&computer==2) || (guess ==2 &&computer ==3)|| (guess ==3 && computer ==1)){
				System.out.println("玩家获胜");
				win++;
			}else if(guess==computer){
				System.out.println("平局");
				deuce++;
			}else{
				System.out.println("电脑获胜");
				lose++;
			}
			Scanner a = new Scanner(System.in);
			System.out.println("继续比赛吗?  1.继续  2.查看结果并退出");
			k = a.nextInt();
			if(k!=1&&k!=2){
				System.out.println("违反规则输入,重新比赛");
				continue;
			}
		}while(k!=2);
		System.out.println("你总共赢了"+win+"次");
		System.out.println("平局了"+deuce+"次");
		System.out.println("电脑赢了"+lose+"次");
	}
}

猜你喜欢

转载自blog.csdn.net/qq_42829628/article/details/83832940