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 中捕获和处理自定义异常的代码示例
本文提供了一个 Java 代码示例,展示了如何捕获和处理自定义异常。通过创建自定义异常类并使用 try-catch 语句,可以更灵活地处理程序中的错误情况。
|
4天前
|
Java 程序员 API
Java循环操作哪个快?
本文探讨了Java中Stream API与传统for循环的性能对比及适用场景。作者通过实际案例分析,指出在某些情况下,过度使用Stream API会导致代码可读性和维护性下降。测试结果显示,在数据量较小的情况下,普通for循环的性能优于Stream API,尤其是在涉及多次类似操作时。因此,建议在开发中根据具体需求选择合适的遍历方式,以提高代码的可读性和性能。
Java循环操作哪个快?
|
16天前
|
XML 安全 Java
Java反射机制:解锁代码的无限可能
Java 反射(Reflection)是Java 的特征之一,它允许程序在运行时动态地访问和操作类的信息,包括类的属性、方法和构造函数。 反射机制能够使程序具备更大的灵活性和扩展性
25 5
Java反射机制:解锁代码的无限可能
|
12天前
|
jenkins Java 测试技术
如何使用 Jenkins 自动发布 Java 代码,通过一个电商公司后端服务的实际案例详细说明
本文介绍了如何使用 Jenkins 自动发布 Java 代码,通过一个电商公司后端服务的实际案例,详细说明了从 Jenkins 安装配置到自动构建、测试和部署的全流程。文中还提供了一个 Jenkinsfile 示例,并分享了实践经验,强调了版本控制、自动化测试等关键点的重要性。
42 3
|
18天前
|
存储 安全 Java
系统安全架构的深度解析与实践:Java代码实现
【11月更文挑战第1天】系统安全架构是保护信息系统免受各种威胁和攻击的关键。作为系统架构师,设计一套完善的系统安全架构不仅需要对各种安全威胁有深入理解,还需要熟练掌握各种安全技术和工具。
50 10
|
13天前
|
分布式计算 Java MaxCompute
ODPS MR节点跑graph连通分量计算代码报错java heap space如何解决
任务启动命令:jar -resources odps-graph-connect-family-2.0-SNAPSHOT.jar -classpath ./odps-graph-connect-family-2.0-SNAPSHOT.jar ConnectFamily 若是设置参数该如何设置
|
12天前
|
Java
Java代码解释++i和i++的五个主要区别
本文介绍了前缀递增(++i)和后缀递增(i++)的区别。两者在独立语句中无差异,但在赋值表达式中,i++ 返回原值,++i 返回新值;在复杂表达式中计算顺序不同;在循环中虽结果相同但使用方式有别。最后通过 `Counter` 类模拟了两者的内部实现原理。
Java代码解释++i和i++的五个主要区别
|
14天前
|
存储 Java 关系型数据库
在Java开发中,数据库连接是应用与数据交互的关键环节。本文通过案例分析,深入探讨Java连接池的原理与最佳实践
在Java开发中,数据库连接是应用与数据交互的关键环节。本文通过案例分析,深入探讨Java连接池的原理与最佳实践,包括连接创建、分配、复用和释放等操作,并通过电商应用实例展示了如何选择合适的连接池库(如HikariCP)和配置参数,实现高效、稳定的数据库连接管理。
31 2
|
15天前
|
Java 关系型数据库 数据库
面向对象设计原则在Java中的实现与案例分析
【10月更文挑战第25天】本文通过Java语言的具体实现和案例分析,详细介绍了面向对象设计的五大核心原则:单一职责原则、开闭原则、里氏替换原则、接口隔离原则和依赖倒置原则。这些原则帮助开发者构建更加灵活、可维护和可扩展的系统,不仅适用于Java,也适用于其他面向对象编程语言。
10 2
|
Java
Java中需要注意的一些案例
Java中需要注意的一些案例
118 0