2020-12-17 if-else的三道习题+ switch-case 部分

首先是两道if-else的习题

题目1:判断狗与人年龄的换算。
代码:

	import java.util.Scanner;
	class panduan{
	public static void main(String[] args) {
		Scanner scanner = new Scanner(System.in);
		System.out.println("请输入狗的年龄:");
			int dogAge = scanner.nextInt();
			if (dogAge >= 0 && dogAge <=2){
				System.out.println("相当于人的年龄" + dogAge * 10.5);
			}else if(dogAge > 2 ){
				System.out.println("相当于人的年龄" + ((dogAge-2) * 4 + 22));	
			}else{
				System.out.println("狗狗还没出生呢");
			}
	}
}

习题2 彩票问题,随机生成2位数彩票,根据随机数判断获奖程度
规则:
1.如果用户数字匹配彩票实际顺序,奖励10000美元;
2.如果用户数字匹配彩票数字,但是顺序不一致,奖励3000美元;
3.如果用户输入的数字仅满足顺序情况下的一个数字,奖励1000美元;
4.如果用户输入的数字仅满足非顺序情况下的一个数字,奖励500美元;
5.如果用户输入的数字没有匹配任何一个数字,彩票作废。

破题点:如何获取随机数
随机数的产生:(int)(Math.random()*90+10)产生随机数。

获得整数需要强转int 
int value = (int)(Math.random()*90 + 10);

Math.random():[0,1)*90 →[0,90) +10 →[10,90)+10→[10,100)

实现代码

import java.util.Scanner;
	class TestCaiPiao {
	public static void main(String[] args) {
		int number = (int)(Math.random()*90 + 10);
		int numbershi = number/10;
		int numberge = number%10;
		Scanner scan = new Scanner(System.in);
		System.out.println("请输入一个两位数");
		int guess = scan.nextInt();
		int guessshi = guess/10;
		int guessge = guess%10;
		if (number == guess){
			System.out.println("恭喜你,一等奖,10000美元!");
		}else if(numbershi == guessge && numberge == guessshi){
			System.out.println("恭喜你,二等奖,3000美元!");
		}else if(numbershi == guessshi || numberge == guessge){
			System.out.println("恭喜你,三等奖,1000美元!");
		}else if(numbershi == guessge || numberge == guessshi){
			System.out.println("恭喜你,四等奖,500美元!");
		}else{
			System.out.println("对不起,你没中奖");
			}
		System.out.println("中奖号码是" + number);
	}
}

习题3
//选拔题(原题改编) 部队飞行员选拔

import java.util.Scanner;
class test3{

	public static void main(String[] args) {
		Scanner scan = new Scanner(System.in);
		System.out.println("请输入你的身高:()");
		int height = scan.nextInt();
		System.out.println("请输入你的视力");
		double eyelight = scan.nextDouble();
		System.out.println("请输入你是否开过飞机:(true/false)");
		boolean isfly = scan.nextBoolean();
		
		if (height >= 180 && eyelight >= 5.0 && isfly){
			System.out.println("可以驾驶战斗机");
		}else if (height >= 180 || eyelight >= 5.0 || isfly){
			System.out.println("可以去当礼兵");
		}else{
			System.out.println("可以去当步兵");
		}
	}
}

补充,boolean是判断t/f,但是实际中都是“是”/“否” 去判断,所以关于boolean的部分要修改为 ishandsome.equal(“是/否”)

		System.out.println("请输入你是否开过飞机:(true/false)");
		boolean isfly = scan.nextBoolean();
		改为
		System.out.println("请输入你是否开过飞机:(是/否)");
		String isfly = scan.next();

后面的判断也要修改:

if (height >= 180 && eyelight >= 5.0 && isfly){
if (height >= 180 && eyelight >= 5.0 && isfly.equal("是")){

switch-case结构
语句结构

*switch(表达式){
	case 常量1:
	语句1
	//break;
	case 常量2:
	语句2
	//break;
	...
	case 常量n:
	语句n
	//break;
	default:
	语句
	//break;
	}*

说明:
①根据switch表达式中的值,依次匹配各个case中的常量,一旦匹配成功,则进入相应case结构中,调用执行语句。
当调用完执行语句后,则仍然继续向下执行其他case中的执行语句,直到遇到break关键字或switch-case结构末尾为止结束。

② break,可以使用在switch-case结构中,表示一旦执行到关键字,就跳出整个循环;

③ switch结构中的表达式,只能是如下的六种数据类型之一:byte/short/char/int/枚举类型(JDK5.0)/String类型(JDK7.0)-小心空格带来的影响

④ case之后只能声明常量,不能声明范围。

⑤ break 关键字是可选的。最后default的break可以不加。

⑥ default:相当于if-else的else.
default 结构是可选的,而且位置是灵活的。写前面注意流程图,找break的位置。
*/

class SwitchCaseTest{ 

	public static void main(String[] args) 
	{
		int number = 2;
			switch(number){

			case 0:
				System.out.println("zero");
			case 1:
				System.out.println("one");
			case 2:
				System.out.println("two");
			case 3:
				System.out.println("three");
			case 4:
				System.out.println("four");
			default:
				System.out.println("other");
			}// two three four other
			//JDK7.0之后的功能:新加入String
			String season = "summer";//注意用string时,空格也算字符
			switch(season){
			case "spring":
				System.out.println("春天来了");
				break;
			case "summer":
				System.out.println("夏天来了");
				break;
			case "autumn":
				System.out.println("秋天来了");
				break;
			case "winter":
				System.out.println("冬天来了");
			default:
				System.out.println("季节输入有误");
				break;
			}
	}
}
	//***错误示范1*****(switch不能用字符串)
	boolean isHandsome = true;
	switch(isHandsome){
	case true:
		System.out.println("你好帅哦");
		break;
	case false:
		System.out.println("你好丑哦");
		break;
	default:
		System.out.println("输出有问题");
}

	//******错误示范2*****(含有boolean类型)
	 int  age = 10;
	 switch(age){
	 case age > 18.   
	 **:*问题出在这里的18是用来判断的,又变成boolean类型了***
	 	System.out.println("成年了");
	 	break;
	 default:
	 	System.out.println("未成年");
	 	}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值