首先是两道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("未成年");
}