4、Java——循环案例代码详解(1)

简介: 4、Java——循环案例代码详解(1)

案例一

       实现双色球的彩票功能。规则:从36个红球中随机选择不重复的6个数,从15个篮球中随机选择1个组成一注彩票。可以选择买多注。

public static void main(String[] args) {
  Scanner sc=new Scanner(System.in);
  System.out.println("请选择买几注:");
  int duoZhu=sc.nextInt();
        //多注彩票号码循环
  for (int k = 1; k <= duoZhu; k++) {
            //定义一个int数组,来存放7个彩票号码;        
    int[] redNums=new int[7];
    boolean repeat=false;
            //36个红球中随机出6个不同数字的循环
    for (int i = 0; i <6; i++) {
                //存到数组中去
    redNums[i]=(int)(Math.random()*35+1);
    if(i>0){
      for (int j = 0; j < i; j++) {
                        //新获取的随机数跟数组中已有的随机数作比较,得到repeat的bool值
      if(redNums[i]==redNums[j]){
        repeat=true;
        break;
      }
      }
    }
                //如果repeat=true;说明有重复的,则需要重新产生随机数
    if(repeat==true){
      redNums[i]=(int)(Math.random()*35+1);
    }
    }
            //数组中的第七个数从篮球的15个中随机产生
    redNums[6]=(int)(Math.random()*14+1);
    System.out.println("您的第"+k+"注彩票号码为:");
            //循环打印出七个彩票号码
    for (int i = 0; i < redNums.length; i++) {
    System.out.print(redNums[i]+"\t");
    }
    System.out.println();
  }
  }

运行效果:



2.png

案例二

       输出一个整数的二进制数、八进制数、十六进制数。


public static void main(String[] args) {
  String numS1="";
  Scanner sc=new Scanner(System.in);
  System.out.println("请输入一个整数:");
  int num=sc.nextInt();
  System.out.println("这个整数的二进制数:");
  for (int i = num; i > 0; i/=2) {
    numS1=i%2+numS1;
  }
  System.out.println(numS1);
        //打印完二进制后,清空numS1的内容
  numS1="";
  System.out.println("这个整数的八进制数:");
  for (int i = num; i > 0; i/=8) {
    numS1=i%8+numS1;
  }
  System.out.println(numS1);
        //打印完二进制后,清空numS1的内容
  numS1="";
  System.out.println("这个整数的十六进制数:");
  String s16="";
  System.out.println("这个整数的八进制数:");
  for (int i = num; i > 0; i/=16) {
    int z16=i%16;
    switch (z16) {
    case 10:
    s16="A";
    break;
    case 11:
    s16="B";
    break;
    case 12:
    s16="C";
    break;
    case 13:
    s16="D";
    break;
    case 14:
    s16="E";
    break;
    case 15:
    s16="F";
    break;
    default:
    s16=String.valueOf(z16);
    break;
    }
    numS1=s16+numS1;
  }
  System.out.println(numS1);
  }


运行效果:

1.gif


案例三

       随机产生一个字符,判断:如果为大写字母则输出“大写字母”;如果为小写字母则输出“小写字母”;否则怎输出“其他字符”;


public static void main(String[] args) {
  char zm=(char)(Math.random()*('z'-'A')+'A');
  System.out.println(zm);
  if(zm>='A'&&zm<='Z'){
    System.out.println("大写字母");
  }else if(zm>='a'&&zm<='z'){
    System.out.println("小写字母");
  }else{
    System.out.println("其他字符");
  }
  }

运行效果:

3.png

2.png

1.gif



案例四

       求两个整数的最大公约数和最小公倍数


       解题思路:先求最大公约数,用辗转相除法求,具体用法如下:


               例如,求(319,377):


                               ∵ 319÷377=0(余319)


                               ∴(319,377)=(377,319);


                               ∵ 377÷319=1(余58)


                               ∴(377,319)=(319,58);


                               ∵ 319÷58=5(余29)


                               ∴ (319,58)=(58,29);


                               ∵ 58÷29=2(余0)


                               ∴ (58,29)= 29;


                               ∴ (319,377)=29。


       下面代码中的do循环操作就是用的此方法实现的。


       最小公倍数:a,b的最大公约数记为(a,b)。关于最小公倍数与最大公约数,我们有这样的定理:(a,b)x[a,b]=ab(a,b均为整数)。


运行效果:

1.gif



案例五

       将100元兑换为1元、5元、10元的零钱,请问有多少种兑换方法?

public static void main(String[] args) {
  int count=0;
  for (int i = 0; i <=100; i++) {
    for (int j = 0; j <= 100; j+=5) {
    for (int k = 0; k <= 100; k+=10) {
      if(i+j+k==100){
      count++;
      }
    }
    }
  }
  System.out.println("将100元兑换为1元、5元、10元的零钱的兑换方法有"+count+"种。");
  }

运行效果:

1.gif

相关文章
|
2天前
|
Java
Java关键字 —— super 详细解释!一看就懂 有代码实例运行!
文章详细解释了Java关键字`super`的用途,包括访问父类的成员变量、调用父类的构造方法和方法,并提供了相应的代码实例。
17 5
Java关键字 —— super 详细解释!一看就懂 有代码实例运行!
|
5天前
|
Java 数据处理 开发者
Java中的Lambda表达式:简化你的代码之路
【8月更文挑战第66天】Lambda表达式在Java 8中首次引入,它为Java开发者提供了一种更简洁、更灵活的编程方式。本文将通过简单易懂的语言和实际代码示例,引导你理解Lambda表达式的基本概念、语法结构以及如何在Java项目中应用它来简化代码。无论你是Java新手还是有经验的开发者,这篇文章都将帮助你更好地掌握这一强大的工具。
34 11
|
2天前
|
存储 Java 数据安全/隐私保护
Java中的域,什么是域?计算机语言中的域是什么?(有代码实例)
文章解释了Java中域的概念,包括实例域、静态域、常量域和局部域,以及它们的特点和使用场景。
9 2
|
2天前
|
安全 算法 Java
数据库信息/密码加盐加密 —— Java代码手写+集成两种方式,手把手教学!保证能用!
本文提供了在数据库中对密码等敏感信息进行加盐加密的详细教程,包括手写MD5加密算法和使用Spring Security的BCryptPasswordEncoder进行加密,并强调了使用BCryptPasswordEncoder时需要注意的Spring Security配置问题。
20 0
数据库信息/密码加盐加密 —— Java代码手写+集成两种方式,手把手教学!保证能用!
|
2天前
|
Java
Java关键字 —— super 与 this 详细解释!一看就懂 有代码实例运行!
本文介绍了Java中this和super关键字的用法,包括在构造方法中使用this来区分参数和成员变量、使用super调用父类构造方法和方法,以及它们在同一个方法中同时使用的场景。
10 0
Java关键字 —— super 与 this 详细解释!一看就懂 有代码实例运行!
|
2天前
|
Java
Java关键字 —— static 与 final 详细解释!一看就懂 有代码实例运行!
这篇文章详细解释了Java中static和final关键字的用法,包括它们修饰类、方法、变量和代码块时的行为,并通过代码示例展示了它们的具体应用。
18 0
Java关键字 —— static 与 final 详细解释!一看就懂 有代码实例运行!
|
12天前
|
Java
java小工具util系列4:基础工具代码(Msg、PageResult、Response、常量、枚举)
java小工具util系列4:基础工具代码(Msg、PageResult、Response、常量、枚举)
33 5
|
10天前
|
Java 开发者
探索Java中的Lambda表达式:简化你的代码之旅##
【8月更文挑战第62天】 Java 8的发布为开发者带来了诸多新特性,其中最引人注目的无疑是Lambda表达式。这一特性不仅让代码变得更加简洁,还极大地提升了开发的效率。本文将通过实际示例,展示如何利用Lambda表达式来优化我们的代码结构,同时探讨其背后的工作原理和性能考量。 ##
|
2天前
|
算法 Java 测试技术
数据结构 —— Java自定义代码实现顺序表,包含测试用例以及ArrayList的使用以及相关算法题
文章详细介绍了如何用Java自定义实现一个顺序表类,包括插入、删除、获取数据元素、求数据个数等功能,并对顺序表进行了测试,最后还提及了Java中自带的顺序表实现类ArrayList。
5 0
|
2天前
|
Java Apache
Apache POI java对excel表格进行操作(读、写) 有代码!!!
文章提供了使用Apache POI库在Java中创建和读取Excel文件的详细代码示例,包括写入数据到Excel和从Excel读取数据的方法。
7 0