JAVA语法基础 4

循环语句

1.while循环语句 

  while循环语句也称为条件判断语句,他的循环方式为利用一个条件来控制是否要继续反复执行这个语句。

  格式为:

             while(逻辑表达式)

                     {

                          执行语句(代码);

                     }  

      或

             while(逻辑表达式)

                     {

                         代码

                         break;

                     }

     当条件表达式的返回值为真时,则执行“{}”中的语句,当执行完“{}”中的语句后,重新判断条件表达式的返回值,直到表达式返回的结果为假时,退出循环。

2.do...while循环语句

   do...while循环语句与while循环语句类似,他们之间的区别是while循环语句为先判断条件是否成立在执行循环体,而do...while循环语句则先执行一次循环后,在判断条件是否成立。也就是说do...while循环语句中大括号中的程序段至少被执行一次。格式如下:

                       do

                        {

                                执行语句(代码);

                        }

                        while{逻辑表达式};

  3.for循环语句

     格式为:

               for(初始化表达式;循环条件表达式;循环后操作表达式)

                         {

                               语句序列;

                         }

      初始化表达式:负责完成变量的初始化;循环条件表达式:值为boolean型的表达式,指定循环条件;循环后操作表达式:负责修整变量,改变循环条件。

   实例:1.100以内奇数连加

               第一种方式:

                                     k=0;
   
                                     for(int m=1;m<101;m++)
                                       {
    
                                                    if(m%2!=0)
                                                       {
                                                            k+=m;

                                                            System.out.println("m="+m+";k="+k);
                                                        }
                                        }
              第二种方式:

                                    k=0;
    
                                    for( int m=1;m<101;m+=2)
                                     {
                                            k+=m;

                                           System.out.println("m="+m+";k="+k);
                                      }

          2.九九乘法表

                

                       for(int  i=1;i<10;i++)
                            {
                              for(int j=1;j<=i;j++)
                               {

                                     System.out.print(i+"*"+j+"="+(i*j)+" ");


                               }
                                System.out.println();
                           }

   

4. break : 中断并跳出循环;

   continue:跳过后边的代码继续循环。

 穷举法实战演练

  1.打印出所有的 "水仙花数 ",所谓 "水仙花数 "是指一个三位数,其各位数字立方和等于该数本身。例如:153是一个 "水仙花数 ",因为153=1的三次方+5的三次方+3的三次方。

                      package com.hanqi;

                      public class 练习题1 {

                      public static void main(String[] args) {


                                       int s=0;

                                       for(int a=0;a<10;a++)//个
                                         {
                                               for(int b=0;b<10;b++)//十
                                                  {
                                                        for(int c=1;c<10;c++)//百
                                                            {

                                                                s=a+b*10+c*100;
                                                                if(s==a*a*a+b*b*b+c*c*c)
                                                                        {
                                                                                 System.out.println("s="+s);
                                                                         }
                                                           }
                                                  }

                                          }

                      }

               }

  2.我国古代数学家张邱建在《算经》中出了一道“百钱买百鸡”的问题,题意是这样的:5文钱可以买一只公鸡,3文钱可以买一只母鸡,1文钱可以买3只雏鸡。现在用100文钱买100只鸡,那么各有公鸡、母鸡、雏鸡多少只?请编写程序实现。

                      package com.hanqi;

                      public class 练习题1 {

                      public static void main(String[] args) {

                             int i=0;

                            for(int d=0;d<=(100/5);d++)
                               {
                                  for(int e=0;e<=(100/3);e++)
                                   {
                                        for(int f=0;f<=100;f++)
                                        {
                                          if(d+e+f==100&&(5*d+3*e+f/3==100))
                                                   {
                                                        i++;
                                                        System.out.println("第"+i+"种组合是:"+d+"只公鸡,"+e+"只母鸡,"+f+"只雏鸡。");

                                                      }

                                           }

                                     }
                                  }

                         }

                     }

3.这是经典的"百马百担"问题,有一百匹马,驮一百担货,大马驮3担,中马驮2担,两只小马驮1担,问有大,中,小马各几匹?

                      package com.hanqi;

                      public class 练习题1 {

                      public static void main(String[] args) {

                            int i=0;

                            for(int x=0;x<100/3;x++)
                               {
                                 for(int y=0;y<100/2;y++)
                                   {
                                       for(int z=0;z<100;z++)
                                        {
                                         if(6*x+4*y+z==200&&x+y+z==100)
                                                   {
                                                        i++;
                                                        System.out.println("第"+i+"种组合是:"+x+"匹大马,"+y+"匹中马,"+z+"匹小马。");

                                                      }

                                           }

                                     }
                                  }

                         }

                     }

原文地址:https://www.cnblogs.com/arxk/p/5216417.html