猜猜看游戏,九九乘法表

1、猜猜看游戏优化

将猜猜看游戏switch代码部分进行优化

先定义一个字符串String  tmp_digit

然后将Math.random()*5+1变成字符串并转化成%f,保留两位小数

将digit转变成float类型

digit=Float.parseFloat(tmp_digit);

import java.util.Scanner;

public class Guest1 {
    public static void main(String[] args) {
//        定义全局变量,user用户名,digit系统生成的价格
        String user;
        //float类型赋初值尾部一定要加上f,不然小数会报错
        float digit=0.00f;
        System.out.println("***********************");
        System.out.println("       幸运猜猜看");
        System.out.println("              版本:v1.1");
        System.out.println("***********************");
        System.out.println("输入用户名");
        Scanner input=new Scanner(System.in);

        /*先接收回车,在这步用户敲任何数据都不接收,这句没有接收,原因用户敲任何内容不需要保存
        input.nextLine();*/
        user= input.next();
        System.out.println(user+",hello,请选择你要猜的类别");
        //输出类别
        System.out.println("***********************");
        System.out.println("1--------骰子(1-6)");
        System.out.println("2--------扑克牌(1-13)");
        System.out.println("***********************");
        System.out.println("结果有两位小数,请按正确形式猜测如(1.1,1.11)");
        String user_choice=input.next();
        //条件语句有确定值用switch
        switch(user_choice){
            case"1":
                //只能产生整数,不需要round,经过round计算后是double类型,当前digit也不是两位小数
                //需要用到格式化的方法,先把Math.random()*5+1变成字符串,字符串转化成%f,保留两位小数
                //这里先产生一个临时的字符串,可以调用String.format,使用%.2f
                String tmp_digit=String.format("%.2f",Math.random()*5+1);
                //之后再把digit转化成float类型,不同类型之间转换调用类型的大写.parse类型
                digit=Float.parseFloat(tmp_digit);
               // System.out.println(digit);
                break;
            case"2":
                //先定义一个临时变量,格式化字符串两位小数
                tmp_digit=String.format("%.2f",Math.random()*12+1);
                //再使用Float.parseFloat不同类型之间转化方法转化成float类型
                digit=Float.parseFloat(tmp_digit);
//                System.out.println(digit);
                break;
            default:
                digit=Math.round(Math.random());
        }
        System.out.println("请猜结果:");
        //设置变量-用户输入价格
        float user_digit= input.nextFloat();
        //设定一个最终输出不同信息的标志位
        boolean flag=true;
        while(!(user_digit==digit)){
            if(user_digit<=0){
                flag=false;
                break;
            }
            if(user_digit>digit){
                System.out.println("往小了猜");
            }else{
                System.out.println("往大了猜");
            }
            //循环继续
            user_digit= input.nextFloat();
        }
        if(flag){
            System.out.println("成功了,请回吧");
        }else{
            System.out.println("很遗憾,加油吧少年,未来在等着你");
        }
    }
}

2、九九乘法表

使用for循环(双重循环)

第一种双重循环,达到某一条件打印

第二种双重循环使用break,减少不必要的循环

第三种循环用continue

三种循环差别不大,主要是对双重循环的熟悉使用和对break、continue两个的理解’

以下是其中一个完整代码

public class Nine {
    public static void main(String[] args) {
        //产生笛卡尔积相乘的两个数字,这就是双重循环
        for(int i=1;i<10;i++){
            for (int j=1;j<10;j++){
                //满足条件的打印,根据去掉部分的特点,j>i的不打印,只打印j<=i
                System.out.print(j+"*"+i+"="+i*j+"\t");
                if(j==i){
                    break;
                }
            }
            System.out.println();
        }
    }
}

最后简单说下break和continue

break退出:退出一层循环,改变当前层的循环次数

continue退出:退出当前循环的次数,继续下次循环,不改变总体的循环次数

共同点:都不执行循环体中后面的语句

不同点:continue结束当前,break结束本层循环  

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
好的,我可以为您提供一个简单的JAVA菜单程序,其中包括九九乘法表和猜数游戏。以下是程序代码: ```java import java.util.Scanner; public class Menu { public static void main(String[] args) { Scanner input = new Scanner(System.in); int choice; do { System.out.println("1. 九九乘法表"); System.out.println("2. 猜数游戏"); System.out.println("0. 退出程序"); System.out.print("请选择菜单项:"); choice = input.nextInt(); switch (choice) { case 1: multiplicationTable(); break; case 2: guessNumber(); break; case 0: System.out.println("程序已退出!"); break; default: System.out.println("无效的选择,请重新选择!"); break; } System.out.println(); } while (choice != 0); } public static void multiplicationTable() { for (int i = 1; i <= 9; i++) { for (int j = 1; j <= i; j++) { System.out.print(j + " × " + i + " = " + (i * j) + "\t"); } System.out.println(); } } public static void guessNumber() { Scanner input = new Scanner(System.in); int answer = (int) (Math.random() * 100) + 1; int guess; int count = 0; do { System.out.print("请输入一个1到100之间的整数:"); guess = input.nextInt(); count++; if (guess > answer) { System.out.println("猜大了!"); } else if (guess < answer) { System.out.println("猜小了!"); } else { System.out.println("恭喜你猜对了!"); System.out.println("你猜了" + count + "次"); } } while (guess != answer); } } ``` 在这个程序中,我们使用了一个do-while循环来持续显示菜单,直到用户选择退出程序为止。然后,我们使用switch语句根据用户的选择来执行相应的操作。如果用户选择九九乘法表,我们则调用multiplicationTable()方法来打印九九乘法表。如果用户选择猜数游戏,我们则调用guessNumber()方法来进行游戏。如果用户选择退出程序,我们则打印一条退出消息。 multiplicationTable()方法使用两个嵌套的循环来打印九九乘法表。guessNumber()方法使用一个do-while循环来让用户猜数游戏,直到猜对为止。在每次循环中,我们使用if-else语句来检查用户的猜测是否正确,并相应地打印提示信息。 希望这个程序能帮助到您!
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值