while语句+for语句+for嵌套练习-第3天

while语句+for语句+for嵌套练习

1、while语句

int x = 1;

while(x<3)//x<3条件一直满足,while一直执行。

{

system.out.println("x="+x);

}//打印无穷多个x=1。如果要强行结束运行,DOS下按ctrl+c即可。

 

int x = 1;

while(x<3)

{

system.out.println("x="+x);

x++;

}//打印:

x=1

x=2

 

int x = 1;

while(x<=10)

{

system.out.println("x="+x);

x+=2;//打印1-10内所以的奇数。即1,3,5,7,9

}

 

 

2、do while语句

int x = 1;

do

{

system.out.println("do:x="+x);

x++;

}

while(x<0);//打印

do:x=1


对比:

int x = 1;

while(x<0)

{

system.out.println("x="+x);

x++;

}//无显示,无打印

区别:while先判断,再执行。do while先执行后判断。

 

int y=1;

while(y=3);//无限循环,一直运行,判断y=3.

 

 

3、for语句

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

for(int x = 0;x<3;x++)

{

system.out.println("x="+x);

//赋初值x=0打印x=0;然后执行x++,x=1。打印x=1;执行x=2。打印x=2;执行x=3,不满足条件x<3,跳出for语句。

}

 

 

4、for和while的区别

int y=0;

while(y<3)

{

system.out.print("y="+y+",");

y++;//打印y=0,y=1,y=2,

}


for(int x = 0;x<3;x++)

{

system.out.println("x="+x);

}

system.out.println("x===="+x);

//打印报错,x离开for中的大括号中,就在内存中消失。(变量的作用域)

对比:

int x = 0;

while(x<3)

{

system.out.println("x="+x);

}

system.out.println("x===="+x);//顺利执行。

1、变量有自己的作用域。对于for来讲,则只在for有效,for语句执行完后,该变量在内存中被释放

2、for和while可以进行互换,如果需要定义循环增量,用for更为适合。

 

总结:

什么时候使用循环结构?

当要对某些语句执行很多次时,就使用循环结构。

 

 

5、循环语句的其它特点

for(system.out.println("a");system.out.println("b");system.out.println("c"))//编译失败。for中循环条件语句既不是真,也不是假,编译不通过。

{

system.out.println("d");

}

对比:

int x = 1;

for(system.out.println("a");x<3;system.out.println("c"))//编译通过。

{

x++;

system.out.println("d");//打印adcdc

}

再对比观察:

int x = 1;

for(system.out.println("a");x<3;system.out.println("c"),x++)

//编译通过。小技巧:用,分隔开多个表达式

{

system.out.println("d");//打印adcdc

}

 

for(int y=0; y<3; y++)

{

}

可以改成下面:

int y=0;

for(;y<3;)

{

y++;

}

 

无限循环的最简单表达式

方法1:

for(;;){}

方法2:

while(true){}

 

 

6、for语句练习-累加&计数器

01、获取1~10的和,并打印。

class ForTest

{

public static void main(sting[] args)

{//1、定义一个变量用于存储不断变化的和

int sum = 0;

//2、定义变量,记录不断变化的被加的数。

int x = 1;

//3、定义循环,重复加法的过程

while(x<=10)

{

sum = sum + x;//可以用sum+=x;代替

x++;

system.out.println("sum="+sum);//一定要明确哪些语句需要参与循环,哪些不需要。

}

}

//思路

0+1

1+2

3+3

6+4

用for语句实现:

int sum = 0;

for(int x=0,x<=10;x++)

{

sum + = x;

}

 

02、获取1~100之间7的倍数的个数,并打印。

//1、先对1~100进行循环,选用for语句

2、定义条件,只对7的倍数操作,用if语句,条件:x%7==0

3、因为7的倍数的个数不确定,定义一个变量随着7的变量的出现而自增。

class ForTest

{

public static void main(string[] args)

{

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);

}

}

//累加思想,原理:通过变量记录住循环操作后的结果,通过循环的形式累加

 

 

7、for嵌套

for(int x=0;x<3;x++)

{

for(int y=0;y<4;y++)

{

system.out.print("*");//打印4次*

}

system.out.println();//只有一个功能就是换行

}

//打印显示如下:

****

****

****

//总结:对于长方形,外循环控制的数,内循环控制的是每行的列数。


需求:打印出如下的图形: 

`````

````

```

``

`

发现图形有很多行,每一行有很多列。使用嵌套循环,原理:形象说法:大圈套小圈。

方法1:改变列的值

int z=5;

for(int x=0;x<5;x++)

{

for(int y=0;y

{

system.out.print("`");

}

system.out.println();

z--;//每一行的个数依次递减,用z--实现。

}

方法2:

int z=0;

for(int x=0;x<5;x++)

{

for(int y=z;y<5;y++)

{

system.out.print("`");

}

system.out.println();

z++;

}

方法3:推荐!!!好记!!!x++,y++

for(int x=0;x<5;x++)

{

for(int y=x;y<5;y++)

{

system.out.print("`");

}

system.out.println();

}

方法4:

for(int x=5;x>0;x--)

{

for(int y=0;y

{

system.out.print("`");

}

system.out.println();

}

 

 

8、for语句嵌套练习

for(int x=0;x<5;x++)

{

for(int y=0;y<=x;y++)//让x控制y的打印,从而跟着x递增。

{

system.out.print("*");

}

system.out.println();

}

//显示:

*

**

***

****

*****

//总结:

尖朝上,可以改变条件

尖朝下,可以初始化值

 

需求:打印下面的数字:

1

12

123

1234

12345

尖朝上,改变内循环中y的条件

for(int x=1;x<=5;x++)

{

for(int y=1;y<=x;y++)

{

system.out.print("y");//是的,这样打印出来的是字符串y

}

system.out.println();

}

对比

for(int x=1;x<=5;x++)

{

for(int y=1;y<=x;y++)

{

system.out.print(y);//打印正确的12345

}

system.out.println();

}

 

 

9、for语句嵌套练习-九九乘法表

1*1=1

1*2=2 2*2=4

1*3=3 2*3=6 3*3=9

......

for(x=1;x<=9;x++)

{

for(y=1;y<=x;y++)

{

/*system.out.print("x"+"*"+"y"="x*y");错的,不要误解字符串连接符的使用形式。*/

/*system.out.print(x+"*"+y"="+x*y");还是错的,每一行中不变的是x。*/

/*system.out.print(y+"*"+x+"="+x*y);基本实现功能,但打印出来不美观*/

/*system.out.print(y+"*"+x+"="+x*y+"");用空格可以隔开表达式,但当乘积的结果出现两位数,比如8*9时,上下的表达式不整齐*/

/*system.out.print(y+"*"+x+"="+x*y+"\t");用制表符可以轻松搞定*/

}

system.out.println();

}

你可能感兴趣的:(while语句+for语句+for嵌套练习-第3天)