咖啡馆 java游戏_Java咖啡馆——编写猜数字游戏(4)

首先,while语句判断返回一个布尔值的expression表达式,如果返回值为true,则执行下面语句,之后再测试expression表达式再执行语句,以此往复,直到expression表达式返回false为止。

do-while语句与while语句非常相似,语法是:

do {

statement(s)

} while ( expression );

与while语句在循环顶部判断表达式真假值不同,do-while语句在底部判断,从而,do-while语句至少执行一次内部的代码。

下面看看猜数字游戏的主体部分:

// 记录玩家猜测的次数

int counter = 0;

System.out.println("我心里有一个0到99之间的整数,你猜是什么?");

do {

try {

// 获取玩家的输入

guess = Integer.parseInt(input.readLine());

} catch (NumberFormatException e) {

// 如果玩家不是输入一个合法的整数,则让他重新输入

System.out.println("请输入一个0-99之间的整数!");

continue;

} catch (IOException e) {

System.out.println("程序发生异常错误将被关闭!");

e.printStackTrace();

}

// 对玩家的输入进行判断

if (guess > number)

System.out.println("大了点,再猜!");

if (guess < number)

System.out.println("小了点,再试试!");

// 计数器增加一

counter++;

} while (guess != number);

首先定义了一个counter变量来记录玩家猜测的次数,并直接初始化为0。在打印一行游戏提示以后,便开始一个do-while语句。

在do-while语句中,首先用异常处理语句获取玩家的输入,如果玩家输入不合法,提示以后用continue语句从头重新执行循环语句,等待玩家的输入。从而,guess变量一定包含一个合法的整数。之后要对玩家的输入进行判断。如果玩家的猜测太大或者太小,都做出提示。接着把计数器增加1,表示玩家做过一次猜测。最后便是do-while语句的判断:当玩家猜测的数字和随机产生的答案不同,则再次进入循环,否则便结束循环,执行下面的代码。

最后提醒一句,别忘记用eclipse的Alt+/快捷键帮助编写do-while语句哦!

switch语句

switch语句是基于整型表达式的条件判断语句,猜数字用它来进行成绩判断:

// 判断成绩

switch (counter) {

case 1:

System.out.println("东渐……快来看上帝……");

break;

case 2:

case 3:

case 4:

case 5:

case 6:

case 7:

System.out.println("这么快就猜对了,你很smart啊!");

break;

default:

System.out.println("猜了半天才猜出来,小同志,尚须努力啊!");

break;

}

可以看出,switch语句是和若干case语句和一个default语句搭配使用的。代码中的switch语句用counter变量的值进行判断。当counter的值为1时,便执行case 1里面的语句,即打印“东渐……快来看上帝……”的字样,随后的break语句表示整个switch语句执行到这里结束了。当counter的值为2时,便执行case 2里面的语句。可以发现case 2到case 6都没有break语句,这表示依次执行下面的语句,从而counter的值为2至7时,都打印“这么快就猜对了,你很smart啊!”字样。当counter的值不是1至7时,便执行default语句,打印鼓励的话语。

Just Do It

想想看怎样编写一个会玩猜数字游戏的Java程序呢?

小结

这是Java咖啡馆开张以来最漫长的一回,涉及的知识面很广,希望你能够感到充实而不是烦琐。此外,自己动手编写几个小程序是最好的练习方法。Eclipse是良师益友,有什么问题都会及时通知你,有时还会附上解决方法,希望你善加利用,不要辜负一片心意哦。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
装饰者模式是一种结构型设计模式,它允许你动态地向对象添加行为。通过将对象放入装饰器类中,可以在运行时更改对象的行为。 在咖啡馆中,装饰者模式可以用于根据顾客的选择动态地添加配料并计算价格。我们可以创建一个基础咖啡类,然后创建多个装饰器类来添加不同的配料,并且每个装饰器类都可以计算自己的价格。 下面是一个简单的示例代码: ```java // 基础咖啡类 public abstract class Coffee { protected String description = "Unknown coffee"; public String getDescription() { return description; } public abstract double cost(); } // 浓缩咖啡类 public class Espresso extends Coffee { public Espresso() { description = "Espresso"; } public double cost() { return 1.99; } } // 装饰器类,用于添加牛奶 public class Milk extends Coffee { private Coffee coffee; public Milk(Coffee coffee) { this.coffee = coffee; } public String getDescription() { return coffee.getDescription() + ", Milk"; } public double cost() { return coffee.cost() + 0.5; } } // 装饰器类,用于添加摩卡 public class Mocha extends Coffee { private Coffee coffee; public Mocha(Coffee coffee) { this.coffee = coffee; } public String getDescription() { return coffee.getDescription() + ", Mocha"; } public double cost() { return coffee.cost() + 0.8; } } // 测试代码 public static void main(String[] args) { Coffee coffee = new Espresso(); // 创建一个浓缩咖啡 coffee = new Milk(coffee); // 添加牛奶 coffee = new Mocha(coffee); // 添加摩卡 System.out.println(coffee.getDescription() + " $" + coffee.cost()); } ``` 输出结果为:`Espresso, Milk, Mocha $3.29` 在这个例子中,我们创建了一个基础咖啡类 `Coffee`,并且创建了两个装饰器类 `Milk` 和 `Mocha`。我们可以通过创建不同的装饰器来添加不同的配料。最后,我们创建了一个浓缩咖啡对象 `Espresso`,并且动态地添加了牛奶和摩卡,最终计算出了价格。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值