Java练手(1)(杨辉三角、猜数字、点名器等)

一、前言

有了Java基础后,我们就可以解决一些简单的问题了ヾ(✿゚▽゚)ノ

二、杨辉三角

递归打印杨辉三角 ,line是行,col是列,列为1或者列等于行的时候返回1

public class YangHui {
    
    
    public static void main(String[] args) {
    
    
        Scanner scanner = new Scanner(System.in);
        System.out.println("请输入杨辉三角形的行数");
        int line = scanner.nextInt();
        for (int i = 1; i <= line; i++) {
    
    
            for (int j = 1; j <= i; j++) {
    
    
                System.out.print(Tri(i, j));
            }
            System.out.println();
        }
    }
    //递归算法
    public static int Tri(int line,int col){
    
    
        return (col==1||col==line)?1:Tri(line-1,col-1)+Tri(line-1,col);
    }
}

【说明】在Tri()方法中,采用的是三目运算符(满足?满足执行A:不满足执行B)运行结果不美观,可控制空格的个数进行修改。

在这里插入图片描述

三、猜数字(随机点名器)

猜数字,猜不对会提示猜大了或者猜小了,直至猜对

1、猜数字
利用Random随机生成一个0-9的数字,再通过Scanner从键盘中输入一个数

public class GuessNumber {
    
    
    public static void main(String[] args) {
    
    
        int randomNum,guessNum;
        Random random=new Random();
        randomNum=random.nextInt(10);
        Scanner scanner=new Scanner(System.in);
        System.out.println("请输入一个0-9的数字");
        guessNum=scanner.nextInt();
        while(guessNum!=randomNum){
    
    
            if(guessNum>randomNum)
                System.out.println("给爷继续猜,你猜大了!");
            else
                System.out.println("给爷继续猜,你猜小了!");
            guessNum= scanner.nextInt();
        }
        System.out.println("恭喜你,猜对了!");
    }
}

【说明】random.nextInt中的10是范围,表示0-9,不包括10

2、点名器

输入三个学生的姓名,并遍历出他们,最后显示被点到名的人

public class CallName {
    
    
    public static void main(String[] args) {
    
    
        String[] arr=new String[3];
        Scanner scanner=new Scanner(System.in);
        //随机点名器
        showInfo();
        //存储
        for(int i=0;i<arr.length;i++){
    
    
            System.out.println("存储第"+(i+1)+"个姓名");
            arr[i]=scanner.nextLine();
        }
        //遍历
        for(int i=0;i< arr.length;i++){
    
    
            System.out.println("第"+(i+1)+"个学生姓名:"+arr[i]);
        }
        System.out.println("被点到名的同学是:"+randomName(arr));
    }
    //随机点名方法
    public static String randomName(String arr[]){
    
    
        Random random=new Random();
        int index=random.nextInt(arr.length);
        return arr[index];
        }
        //前言介绍
    public static void showInfo(){
    
    
        System.out.println("——————随机点名器——————");
    }
     }

【说明】类似上面的猜数字,不过nextInt的范围变成了数组的长度,在通过randomName方法,返回随机数(数组下标)处的String类型的数组元素

在这里插入图片描述

四、超市购物

如果顾客A想买好果汁,超市有好果汁那么就输出A在XX超市买到了好果汁;若买不到,则输出A在XX超市啥也没买到!白跑了一趟!

超市类(只有一个封装的超市名称)

//超市
class Market{
    
    
    private String marketName;
    Market(String marketName){
    
    
        this.marketName=marketName;
    }
    public void setMarketName(String marketName) {
    
    
        this.marketName = marketName;
    }
    public String getMarketName() {
    
    
        return marketName;
    }
}

顾客类(顾客姓名和顾客需求)

//购物者
class Person{
    
    
    private String name;
    private String personNeed;
    Person(String name,String personNeed){
    
    
        this.name=name;
        this.personNeed=personNeed;
    }
    public String getName() {
    
    
        return name;
    }
    public String getPersonNeed() {
    
    
        return personNeed;
    }
}

产品类(只有被封装起来的产品名称)

//产品
class Product{
    
    
    private String productName;
    Product(String productName){
    
    
        this.productName=productName;
    }
    public String getProductName() {
    
    
        return productName;
    }
}

主程序SuperMarket(通过Arraylist,数组的升级版,人为添加数据,再遍历进行比对)

public class SuperMarket {
    
    
    //前言
    public static  void showInfo(){
    
    
        System.out.println("——————超市购物程序——————");
    }
    //主函数
    public static void main(String[] args) {
    
    
        //展示前言
        showInfo();
        //flag标记是否有这个商品
        boolean flag=false;
        //实例化购物者
        Person person=new Person("虎哥","歌姬证书");
        //实例化超市
        Market market=new Market("东百超市");
        //实例化产品
        ArrayList<Product> productArray=new ArrayList<>();
        Product p1=new Product("好果汁");
        Product p2=new Product("歌姬证书");
        Product p3=new Product("唐老鸭声卡");
        Product p4=new Product("沈阳冰红茶");
        productArray.add(p1);
        productArray.add(p2);
        productArray.add(p3);
        productArray.add(p4);
        for(int i=0;i< productArray.size();i++){
    
    
            String items=(productArray.get(i)).getProductName();
            if(items==person.getPersonNeed()) {
    
    
                flag = true;
                break;
            }
        }
        if(flag)
            System.out.println(person.getName()+" 在 "+market.getMarketName()+" 买到了 "+person.getPersonNeed());
        else
            System.out.println(person.getName()+" 在 "+market.getMarketName()+" 什么也没有买到!白跑了一趟!");
    }
}

顾客名:虎哥,需求:好果汁,是否成功:是
在这里插入图片描述
顾客名:刀哥,需求:打火机,是否成功:否
在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/MODAX/article/details/123568057