<span style="font-size:14px;">/**
* 随机产生[1~100]整数
*/
private int randomValue() {
return (int) (Math.random() * 100 + 1);
}</span>
2.如果用户通过键盘输入的数字不合法,则捕获异常,通知用户重新输入合法字符,直到输入合法字符 /**
* 如果用户通过键盘输入的数字不合法,则捕获异常,通知用户重新输入合法字符,直到输入合法字符
* @throws IOException
*/
private void panDuan() throws IOException {
// 字符0 ~ 9对应ASCII值48 ~ 57
byte[] buffer = new byte[512];
int count = System.in.read(buffer);// 返回实际读取的字节数
System.out.print("您输入的是:");
for (int i = 0; i < count; i++) {
System.out.print("" + (char) buffer[i]);
}
inputValue = 0;
String value = "";
for (int i = 0; i < count - 1; i++) {
if ((char) buffer[i] > 47 && (char) buffer[i] < 58) {
value += (char) buffer[i];
if (i == count - 2) {
inputValue = Integer.valueOf(value);
}
} else {
// 输入的字符不是数值
System.out.println("输入不合法,请重新输入");
panDuan();
break;
}
}
}
3.再进行比较大小,直到猜对为止,中间可以给出猜大猜小的提示。
private int inputValue;
private void panDuanValue(Test localT1, int paramInt) throws IOException {
localT1.panDuan();
if (localT1.inputValue == paramInt) {
System.out.println("猜对了");
} else if (localT1.inputValue < paramInt) {
System.out.print("比你猜的数值大,请重新输入:");
panDuanValue(localT1,paramInt);
} else if (localT1.inputValue > paramInt) {
System.out.print("比你猜的数值小,请重新输入:");
panDuanValue(localT1,paramInt) ;
}
}
测试:
public static void main(String[] args) {
Test localT1 = new Test();
int value = localT1.randomValue();
System.out.print("随机数0~100已经产生,请输入你猜测的数:");
try {
localT1.panDuanValue(localT1, value);
} catch (IOException e) {
e.printStackTrace();
}
}