循环语句
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+"匹小马。");
}
}
}
}
}
}