• 循环嵌套


    循环嵌套是指一个循环在另一个循环之内;

    ①内层循环结构遍历一遍,只相当于外层循环循环体执行了一次

    ②假设外层循环需要执行M次,内层循环需要执行N次,此时,内层循环体一共执行了M*N次

    技巧:外层循环变量控制行数,内层变量控制列数

    public class Nested {
    public static void main(String[] args) {
     int i,j;
     for(i=0;i<10;i++) {
      for(j=i;j<10;j++)//第一次将j=i输入成了j=1,运行出来等长的点
       System.out.print(".");//将println输成print,则换行了
      System.out.println(" ");
     }
    }


    }

    正确运行结果:

    当将代码第五行改成j=1时,运行结果为

    print与println区别:

    print 不会换行,println会换行;

    心得:虽然是很简单的代码,但一不小心就很容易出错,必须弄懂每一步,加以深化;

    加更练习:通过循环嵌套实现九九乘法表;

     1 public class NineNine {
     2 
     3     public static void main(String args[]){
     4         for(int i=1;i<=9;i++) {
     5             for(int j=1;j<=i;j++) {
     6                 System.out.print(i+"*"+j+"="+i*j+" ");
     7             }
     8             System.out.println();
     9         }
    10     
    11     
    12     
    13     }
    14     }

    运行结果:

    100以内所有的质数输出

     1 //质数,只有被1和它本身整除的自然数------即从2开始到这个数-1都不能被这个数本身整除
     2 public class PrimeNumber {
     3     public static void main(String args[]) {
     4         for(int i=2;i<=100;i++) {//遍历100以内的自然数
     5             boolean isFlag=true;
     6             for(int j=2;j<i;j++) {//j:被i去除
     7                 if(i%j==0) {
     8                     isFlag=false;
     9                 }
    10                 
    11             }
    12             if(isFlag==true) {
    13                 System.out.println(i);
    14         }
    15         }
    16         
    17     }
    18 
    19 }

    运行结果:

    优化一:加上break;为使优化明显表示出来,引用了currentTimeMillis()方法,并将100以内改为100000以内。

     1 public class PrimeNumber {
     2     public static void main(String args[]) {
     3         long start = System.currentTimeMillis();//获取当前时间距离1970-01-01 00:00:00的毫秒数
     4         for(int i=2;i<=100000;i++) {//遍历100000以内的自然数
     5             boolean isFlag=true;
     6         
     7             for(int j=2;j<i;j++) {//j:被i去除
     8                 
     9                 if(i%j==0) {
    10                     isFlag=false;
    11                     break;//优化一:一旦被除尽,就不会再往下除,只对本身非质数的自然数是有效的
    12                 }
    13             }
    14             if(isFlag==true) {
    15                 System.out.println(i);
    16         }
    17         }
    18         long end=    System.currentTimeMillis();
    19         System.out.println("所花费的时间为:"+(end-start));
    20     }
    21 
    22 }

     如下图所示,加break优化花费时间为2204ms.不加则花费22014ms;

    优化二:

     1 public class PrimeNumber {
     2     public static void main(String args[]) {
     3         long start = System.currentTimeMillis();//获取当前时间距离1970-01-01 00:00:00的毫秒数
     4         for(int i=2;i<=100;i++) {//遍历100以内的自然数
     5             boolean isFlag=true;
     6         
     7             for(int j=2;j<=Math.sqrt(i);j++) {//j:被i去除       优化二
     8                 
     9                 if(i%j==0) {
    10                     isFlag=false;
    11                     //break;//优化一:一旦被除尽,就不会再往下除,只对本身非质数的自然数是有效的
    12                 }
    13             }
    14             if(isFlag==true) {
    15                 System.out.println(i);
    16         }
    17         }
    18         long end=    System.currentTimeMillis();
    19         System.out.println("所花费的时间为:"+(end-start));
    20     }
    21 
    22 }
  • 相关阅读:
    当Django模型迁移时,报No migrations to apply 问题时
    django--各个文件的含义
    django--创建项目
    1013. Battle Over Cities (25)
    1011. World Cup Betting (20)
    1009. Product of Polynomials (25)
    1007. Maximum Subsequence Sum (25)
    1006. Sign In and Sign Out (25)
    1008. Elevator (20)
    1004. Counting Leaves (30)
  • 原文地址:https://www.cnblogs.com/boogie-xy/p/10645024.html
Copyright © 2020-2023  润新知