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

相关文章
|
21天前
|
Java 开发工具
【Azure Storage Account】Java Code访问Storage Account File Share的上传和下载代码示例
本文介绍如何使用Java通过azure-storage-file-share SDK实现Azure文件共享的上传下载。包含依赖引入、客户端创建及完整示例代码,助你快速集成Azure File Share功能。
296 4
|
1月前
|
Java 数据处理 API
为什么你的Java代码应该多用Stream?从循环到声明式的思维转变
为什么你的Java代码应该多用Stream?从循环到声明式的思维转变
217 115
|
1月前
|
安全 Java 编译器
为什么你的Java代码需要泛型?类型安全的艺术
为什么你的Java代码需要泛型?类型安全的艺术
158 98
|
1月前
|
Java 编译器 API
java最新版和java8的区别,用代码展示
java最新版和java8的区别,用代码展示
189 43
|
1月前
|
安全 Java 容器
告别空指针噩梦:Optional让Java代码更优雅
告别空指针噩梦:Optional让Java代码更优雅
316 94
|
1月前
|
安全 Java 容器
告别繁琐判空:Optional让你的Java代码更优雅
告别繁琐判空:Optional让你的Java代码更优雅
|
2月前
|
IDE Java 关系型数据库
Java 初学者学习路线(含代码示例)
本教程为Java初学者设计,涵盖基础语法、面向对象、集合、异常处理、文件操作、多线程、JDBC、Servlet及MyBatis等内容,每阶段配核心代码示例,强调动手实践,助你循序渐进掌握Java编程。
322 3
|
2月前
|
安全 Java 应用服务中间件
Spring Boot + Java 21:内存减少 60%,启动速度提高 30% — 零代码
通过调整三个JVM和Spring Boot配置开关,无需重写代码即可显著优化Java应用性能:内存减少60%,启动速度提升30%。适用于所有在JVM上运行API的生产团队,低成本实现高效能。
221 3
|
2月前
|
Java
java入门代码示例
本文介绍Java入门基础,包含Hello World、变量类型、条件判断、循环及方法定义等核心语法示例,帮助初学者快速掌握Java编程基本结构与逻辑。
349 0