A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 939676244 中级黑马   /  2013-9-25 13:02  /  2304 人查看  /  8 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 939676244 于 2013-9-27 15:48 编辑

2:编写一个辅助小学生学习乘法的程序。使用一个Random对象产生两个一位数正整数。
然后程序应该给用户提出一个问题,诸如“How much is 6 times 7 ?”。然后由学生输入答案。
接着程序检查学生的答案是否正确,如果正确,则显示消息“very good!”并另外问一个乘法问题。
如果答案是错的,则显示消息“no,please try again.”并让学生重复同一个问题,直到学生最终得到正确答案。

评分

参与人数 1技术分 +1 收起 理由
黄文伯 + 1 赞一个!

查看全部评分

8 个回复

正序浏览
亲,如问题已解决请将分类的“未解决”改为“已解决”。 以后的问题贴也要及时更改分类哦~
回复 使用道具 举报
import java.util.Random;
import java.util.Scanner;

public class Calculator {
public static void main(String[] args) {
  Scanner input = new Scanner(System.in);
  //生成两个随机数
    int i = new Random().nextInt(10)+1;
    int j = new Random().nextInt(10)+1;
    System.out.println("How much is "+i +" * " +j+" ?");
  while(true){     
   int result = input.nextInt();
   
   //判断如果输入结果等于两数相乘结果返回very good,然后continue继续循环
   if(result == (i*j)){
    System.out.println("very good!");
    i = new Random().nextInt(10)+1;
    j = new Random().nextInt(10)+1;
    System.out.println("How much is "+i +" * " +j+" ?");
    continue;
   }
   //如果小朋友玩累了,按0,即可跳出循环,结束该程序
   else if(result == 0){
    System.out.println("welcome to use");
    break;
   
   }
   //如果不相等,就返回try again ,直到结果是对的,然后continue继续循环
   else {
    System.out.println("no,please try again!");
     
       while(result == (i*j)){
        continue;
       }
      
      
      }
     
       }   
  }  
}   



QQ截图20130927011823.png (42.17 KB, 下载次数: 12)

运行效果图

运行效果图

评分

参与人数 1技术分 +2 收起 理由
黄文伯 + 2 赞一个!

查看全部评分

回复 使用道具 举报
本帖最后由 HM马强 于 2013-9-26 01:41 编辑

package demo;

import java.util.Random;
import java.util.Scanner;

public class Test6 {
    public static void main(String[] args) {
        Random r = new Random();
        Scanner sc = new Scanner(System.in);
        while (true) {
            int i1 = r.nextInt(10);
            int i2 = r.nextInt(10);
            System.out.println(i1 + "乘以" + i2 + "的结果为:");
            String str = sc.nextLine();
            if ("qiut".equals(str)) {
                sc.close();
                break;
            }else if (!str.matches("[0-9]*"))
                System.out.println("输入错误,请输入数字");
            else if (Integer.parseInt(str) == i1 * i2)
                System.out.println("正确");
            else {
                System.out.println("错误");
            }
        }
    }
}

评分

参与人数 1技术分 +1 收起 理由
黄文伯 + 1

查看全部评分

回复 使用道具 举报
random限定在1-10,其他的用循环语句
回复 使用道具 举报
package NoMainText;

import java.util.Scanner;
public class Hello {
        public static void main(String[] atg0){
                while(true){
                        int i = (int)(Math.random()*9+1);
                        int j = (int)(Math.random()*9+1);
                        System.out.println("how much is " + i
                                        + " times " + j);
                        while(true){
                                int result = new Scanner(System.in).nextInt();
                                if(result == -1) System.exit(0);
                                if(result == i * j) {
                                        System.out.println("very good!");
                                        break;
                                }
                                System.out.println("no please try again.");
                        }
                }
        }
}

评分

参与人数 1技术分 +1 收起 理由
黄文伯 + 1

查看全部评分

回复 使用道具 举报
939676244 发表于 2013-9-25 13:26
是啊 ,写了啊 ,总出错啊

代码贴上来,帮你看看
回复 使用道具 举报
落木萧萧 发表于 2013-9-25 13:24
这种问题,只能呵呵了。
题目已经说得很明显了,为什么不尝试着写一下呢 ...

{:soso_e113:}是啊 ,写了啊 ,总出错啊
回复 使用道具 举报
这种问题,只能呵呵了。
题目已经说得很明显了,为什么不尝试着写一下呢
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马