标签:
我的车就差一个轮子啦,造好轮子,我就飞上天与太阳肩并肩啦,想想都激动。什么你要自己造轮子,是不是傻,商店里不都是别人造好的吗,又好又方便,只需一点money,你没有money,那你只能做个安静的美男子啦。幸运的是编程世界中的轮子不需要money,今天就来看看如何调用库中的轮子。
今天的内容:
1 public String checkYourself(int guess) { 2 String result = "miss"; 3 for(int i: localCells) { 4 if ( i == guess) {//就在这里,猜中后没有做任何处理 5 result = "hit"; 6 numOfHit ++; 7 break; 8 } 9 } 10 if (numOfHit == 3) { 11 result = "kill"; 12 } 13 return result; 14 }
既然知道了问题,就该解决它。你可以有以下解决方案。
1.再创建一个boolean[] hitFlag = {false, false, false},猜中哪个位置,就把对应的hitFlag数组中的位置设置为true, 在猜中之后查看hitFlag中相应位置的状态若为false,则成功,否则猜过,此次失败。
这个方法是最笨的,所以一般聪明的你不会想到。
2.猜中后可以把那个位置的数字设置为 -1,哈哈,瞬间感觉世间好美好啊。但为什么不把猜过的去掉呢?从而只需判断你的猜测结果是否在localCells里就行啦。
3.要是有一种能缩放的数组就好啦,把没必要的东西都从里面剔除掉,这样,程序运行越来越好啊。有没有呢?还真有一个,java库中有个ArrayList,非常符合这个要求。
import java.util.ArrayList; public class SimpleDotCom { private ArrayList<String> localCells; //private int[] dotCom; //private int numOfHit = 0; public void setDotCom(ArrayList<String> localCells) { this.localCells = localCells; } //明显好多啦 public String CheckYourself(String guess) { String result = "miss"; if (localCells.contains(guess)) { result = "hit"; localCells.remove(guess); } if (localCells.isEmpty()) { result = "kill"; } return result; } }
测试代码:
1 import java.util.*; 2 public class Test { 3 public static void main(String[] args) { 4 SimpleDotCom dotCom = new SimpleDotCom(); 5 ArrayList<String> localCells = new ArrayList(); 6 localCells.add("1"); 7 localCells.add("2"); 8 localCells.add("3"); 9 dotCom.setDotCom(localCells); 10 11 String result = dotCom.CheckYourself("1"); 12 System.out.println("result = " + result); 13 14 result = dotCom.CheckYourself("1"); 15 System.out.println("result = " + result); 16 17 result = dotCom.CheckYourself("2"); 18 System.out.println("result = " + result); 19 20 result = dotCom.CheckYourself("3"); 21 System.out.println("result = " + result); 22 23 24 } 25 26 }
再稍微解释一下,为什么有的包名多出个“X”,如swing的javax。名字为“java"的包是刚开始的标准库, ”java“是后来扩展为java标准库的。
注意:& 与 | 和 && 与 || 不同之处在于, 表达式1 && 表达式2,若表达式1结果为 false,则表达式2就不会执行啦,而 & 的表达式都会执行, | 与 || 同前面所诉。
四、java API
API我们封装了很多常用的功能,避免了我们重复造轮子的工作。我们只需学会怎样使用api就可以啦(对于我们新手而言),对于小白的我们,how do I go from a need-to-do-something to a-way-to-do-it using the API,有两种常用的方式,一是买个参考书,根据自己的需要去找想要的api,参考书会为你提供api的使用语法的。
另一种就是html 文档啦,免费又方面,强烈推荐它,比参考书详细,而且时效性好,上官方随时下最新的文档。
每日一句:
It seems the harder I work, the more luck I have.
标签:
原文地址:http://www.cnblogs.com/wangjunxiao/p/5871247.html