1.
while:先判断条件,只有条件满足才执行循环体。
do while:先执行循环体,再判断条件,条件满足,再继续执行循环体。
简单一句话,do while:无论条件是否满足,循环体至少循环一次
int x = 1;
do
{
System.out.println("do : x="+x);
x++;
}
while (x<5);
int y = 1;
while(y<0)
{
System.out.println("y="+y);
y++;
}
while语句
定义初始化表达式;
while(条件表达式)
{
循环体(执行语句);
}
int x = 1;
while(x<=3)
{
System.out.println("x="+x);//x=1
x++;
}
2.for语句
格式:
for(初始化表达式;循环表达式;循环后的操作表达式)
{
执行语句;
}
**初始化表达式只执行一次
只有条件不满足,循环就结束**
int x = 1;
for(System.out.println("a");x<3;System.out.println("c"),x++)
{
System.out.println("d");
//x++;
}
执行结果:adcdc
3.
for和while的区别
1,变量有自己的作用域。对于for来讲:如果将用于控制循环的增量定义在for语句中。
那么该变量只在for语句中有效。
for语句执行完毕。该变量在内存中被释放。
2,for和while可以进行互换,如果 需要定义循环增量。用for更合适。
总结:
什么时候使用循环结构?
当要对某些语句执行很多次时,使用循环结构
练习 :
/*
1 获取1~10的和,并打印
2 1~100之间7的倍数个数,并打印
*/
int sum = 0;
for(int x=0; x<=10; x++)
{
sum += x;
}
System.out.println("for sum="+sum);
用 while语句实现:
int sum = 0;
int x = 1;
while(x<=10)
{
sum = sum + x;
x++;
}
System.out.println("sum="+sum);
1~100之间7的倍数的个数,并打印
思路:
1.先对1~100进行循环(遍历)通过循环形式
2.在遍历的过程中,定义条件,只对7的倍数进行操作。
3.因为7 的倍数不确定,只要符合条件就通过一个变量来记住这个变化的次数
步骤:
1.定义循环语句。选择for语句
2.再循环中定义判断。只要是7的倍数即可。使用if语句。条件:7的倍数 x%7=0
3.定义一个变量,该变量随着7的倍数的出现而自增。
int count = 0;
for(int x = 1 ;x<=100; x++)
{
if(x%7==0)
//System.out.println("x="+x);
count++;
}
System.out.println("count="+count);
循环嵌套
语句嵌套形式。其实就是语句中还有语句
public static void main(String[] args)
{
for(int x=0;x<3;x++)
{for(int y=0;y<4;y++)
{
System.out.print("*");//ln代表换行。
}
System.out.println();//只有一个功能换行。
}
打印结果:4*3的长方形,由“*”构成
//int z=0;定义一个变量z也可以。
for(int x=0; x<5;x++)//因为外循环控制行数,一共五行。
{
for(int y=x; y<5;y++)
{
System.out.print("*");
}
System.out.println();
//z++;
}
思路:
对于打印长方形,外循环控制的是行数,内循环控制的是每一行的列数,也就是一行中元素的个数。
打印九九乘法表
/*
九九乘法表
1*1=1
1*2=2 2*2=4
1*3=3 2*3=6 3*3=9
*/
class chengfaDemo
{
public static void main(String[] args)
{
for(int x=1;x<=9;x++)
{
for(int y=1 ;y<=x;y++)
{
System.out.print(y+"*"+x+"="+x*y+"\t");
}
System.out.println();//换行功能
}
}
// \t 制表符
}
其他流程控制语句
public static void main(String[] args)
{
for(int x =0;x<3;x++)
{
System.out.println("x="+x);
break;
}
}
打印结果为0,然后直接跳出。循环语句结束。
public static void main(String[] args)
{
for(int x =0;x<3;x++)
{
break;
System.out.println("x="+x);
}
}
这样是不行的,会直接跳出,语句执行不到
嵌套循环跳出
for(int x =0;x<3;x++)
{
for(int y =0;y<4;y++)
{
System.out.println("x="+x);
break;
}
}
打印结果:x=0,x=1,x=2
标识:
w:for(int x =0;x<3;x++)
{
q:for(int y =0;y<4;y++)
{
System.out.println("x="+x);
break w;
}
}
跳出的是外循环
注:只有循环语句可以标识(就是起名字便于区分)。
——————————————
continue:只能作用于循环结构。继续循环
continue不能单独存在,后面的语句执行不到
特点:结束本次循环,继续下一次循环
for(int x=1;x<=10;x++)
{
if(x%2==1)
continue;//执行到continue直接回去x++,下面语句不执行
System.out.println("x="+x);
}
//打印结果2,4,6,8,10
w:for(int x =0;x<3;x++)
{
for(int y =0;y<4;y++)
{
System.out.println("x="+x);
continue w;
}
}
//打印结果0,1,2
/*
记住:
1.break和continue作用的范围(循环结构swich,for)
2.break和continue单独存在时,下面不可以有任何语句,因为执行不到
*/
练习:打印金字塔
for(int x=0;x<5;x++)
{
for(int y=x+1;y<5;y++)
{
System.out.print(" ");
}
for(int z=0;z<=x;z++)
{
System.out.print("* ");
}
System.out.println();
}
打印结果