原做者博客地址:https://my.oschina.net/u/3823949/blog/1795895java
import javax.swing.Icon; //JOptionPane 显示包含文本、按钮等的标准对话框,它是用来编写图形用户界面的一个类 import javax.swing.JOptionPane; public class CNumber { public static void main(String[] args) { Icon icon = null; boolean bl = false; int put = 0; int c = (int) (((Math.random())*100)+1); //获取一个1-100的随机数 System.out.println("你获取的随机数是:"+c); //打印你的随机数字 //方法原型:JOptionPane.showInputDialog(null, text, title,value) //JOptionPane.showInputDialog方法返回用户输入的字符串。 //显示在输入对话框中的标题、消息及图标等由传递给该方法的参数肯定 // 参数text是要在输入对话框中显示的字符串 // 参数title是要在输入对话框的标题栏中显示的字符串 // 参数value为要显示的图标,值为JOptionPane类常量。 // 第1个参数的值为null表示对话框显示在屏幕中央。 //具体可参考 https://blog.csdn.net/changjiale110/article/details/78867779 String str1 = (String) JOptionPane.showInputDialog(null,"请输入你的猜想数字(1-100):\n","猜数字游戏",JOptionPane.PLAIN_MESSAGE,icon,null,"在这输入"); //第一次输入你的猜想数字 if(str1==null){ JOptionPane.showMessageDialog(null, "你已经取消了本次游戏"); //若是你点取消那么本次游戏结束 }else{ bl = num(str1); //判断是输入的是否是数字或者是整数 if(true==bl){ //若是是数字的话进入与随机数比较的程序 System.out.println("你输入的数字是:"+str1); //打印你输入的数字 //调用Integer类中的静态方法valueOf(String) //valueOf方法将传入的参数String转化为int型值 //返回该值,若是String并非纯粹由数字构成即没法转化为数字,则抛出NumberFormatException.. put = Integer.valueOf(str1); for(int i = 4;i > 0;i--){ //i是你能够猜想的次数 if(put==c){ JOptionPane.showMessageDialog(null, "恭喜你猜对了,正确答案是:"+c+"。"); //若是你猜对了就直接结束循环 break; }else if(put>c){ //若是输大了就让你再次重新输入 str1 = (String) JOptionPane.showInputDialog(null,"你的输入过大。你还有"+i+"次机会,请从新输入:\n","猜数字游戏",JOptionPane.PLAIN_MESSAGE,icon,null,"在这输入"); if(str1==null){ JOptionPane.showMessageDialog(null, "你已经取消了本次输入"); break; }else{ bl =num(str1); if(true==bl){ put = Integer.valueOf(str1); }else{ JOptionPane.showMessageDialog(null, "你的输入不正确,请从新输入"); } } }else if(put<c){ //若是你输小了也让你重新输入 str1 = (String) JOptionPane.showInputDialog(null,"你的输入太小。你还有"+i+"次机会,请从新输入:\n","猜数字游戏",JOptionPane.PLAIN_MESSAGE,icon,null,"在这输入"); if(str1==null){ JOptionPane.showMessageDialog(null, "你已经取消了本次输入"); break; }else{ bl =num(str1); if(true==bl){ put = Integer.valueOf(str1); }else{ JOptionPane.showMessageDialog(null, "你的输入不正确,请从新输入"); } } } } }else if(bl==false){ //这个是你第一次若是填写的不是数字的话也会结束本次游戏 JOptionPane.showMessageDialog(null, "请您下次按要求填写。本次游戏结束"); } if(true==bl && c!=put){ //若是你i次都没猜对,那么就直接告诉你这个数十什么 JOptionPane.showMessageDialog(null, "很遗憾你没能猜对,这个数字是:"+c+"."); } } } public static boolean num(String value){ //一个静态方法,判断你输入的是否是数字 try { //Integer.parseInt(String)就是将String字符类型数据转换为Integer整型数据。 //Integer.parseInt(String)遇到一些不能被转换为整型的字符时,会抛出异常。 Integer.parseInt(value); return true; } catch (Exception e) { return false; } } }