---------------------- 黑马程序员 Android培训、期待与您交流! ----------------------
循环结构
格式:
for(初始化表达式;循环条件表达式;循环后的操作表达式)
{
执行语句;
}
注:
a,for里面的连个表达式运行的顺序,初始化表达式只读一次,判断循环条件, 为真就执行循环体,然后再执行循环后的操作表达式,接着继续判断循环条件,重复找个过程,直到条件不满足为止。
b,while与for可以互换,区别在于for为了循环而定义的变量在for循环结束就是 在内存中释放。而while循环使用的变量在循环结束后还可以继续使用。
c,最简单无限循环格式:while(true) , for(;;),无限循环存在的原因是并不知道循 环多少次,而是根据某些条件,来控制循环。
For循环与While循环的区别
其实这两个可以互相代替的,比如说
for (int i = 0; i<10; i++) {...//插入语句 }
用while来写就是
int i = 0;
while (i<10) {
...//插入语句
i++;
}
for循环比较简洁,会比while更常用些,尤其是用array的时候,很方便的。
但是如果想做无限循环,while更方便点,比如说
int i = 1;
while (i == 1){ ... }
还有一种do..while,和while差不多,但是do...while在任何情况下都会先执行命令一次,即使i不符合设定条件,
do{
...
}while (i<10);
For循环可以将变量定义在循环体中,当循环结束后,会自动释放;
while与doWhile循环的特点
/*
* While特点:先判断,后执行
*
* 定义初始化表达方式:
* while(条件表达方式)
* {
* 循环体(执行语句)
* }
*
* doWhile特点:先执行语句,后判断(即使条件不成立,也要先执行一次)
*
* do
* {
* 循环体(执行语句)
* }
* while(条件表达式)
*/
package cn.jbit.output;
public class wihle循环 {
public static void main(String[]args)
{
//While循环
int x = 1;
while(x<5)
{
System.out.println("While循环打印:"+x);
x++;
}
//doWhile循环
int y = 0;
do
{
System.out.println("doWhile循环打印:"+y);
y++;
}while(y>0 && y<10);
}
}
/*
* 1.获取1-10的和,并打印
* 2.1-100之间 7的倍数的个数,并打印
*/
public class ForText2 {
public static void main(String[]args)
{
//第一题
int sum=0;//定义变量接收和
for(int i=0;i<=10;i++)
{
sum+=i;
/*
* 这个被称之为累加思想。
* 原理:通过变量记住每次变化的结果。通过循环的方式进行累加动作。
*/
}
System.out.println(sum);
//第二题
int k=0;
for(int i=1;i<=100;i++)
{
if(i%7==0)
{
System.out.print(i+"\t");//输出是7倍数的数
k++;//记录次数
}
}
System.out.print(k);//输出次数
/*
* 计数器思想
* 通过一个变量记录住数据的变化。
* 也许通过循环完成。
*/
}
}
For嵌套练习
public class For嵌套练习 {
/*
*第一题
*
**
***
****
*****
*第二题
1
12
123
1234
12345
第三题
九九乘法表
*/
public static void main(String[] args) {
//第一题
// 下面介绍一个不是规律的规律
// 尖朝上的可以改变条件,让条件随着外层循环变化。
// 尖朝下的,可以初始化值,让初始化值随着外层循环变化
for(int x=0;x<5;x++)
{
for(int y=0;y<=x;y++)//让y跟 着外层循环x的值变化
{
System.out.print("*");
}
System.out.println();
}
//第二题
for(int x=1;x<=5;x++)
{
for(int y=1;y<=x;y++)
{
System.out.print(y);
}
System.out.println();
}
//第三题
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();
}
}
}
public class For循环等腰三角形 {
public static void main(String[] args) {
/*
----*
---* *
--* * *
-* * * *
* * * * *
等腰三角形
*/
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();
}
}
}
循环流程控制语句
break(跳出), continue(继续)
break语句:应用范围:选择结构和循环结构。
continue语句:应用于循环结构。
注:
a, 这两个语句离开应用范围,存在是没有意义的。
b, 这个两个语句单独存在下面都不可以有语句,因为执行不到 。
c, continue语句是结束本次循环继续下次循环。
d, 标号的出现,可以让这两个语句作用于指定的范围。
public class BreakContenul {
public static void main(String[] args) {
// break
w:for(int x=0;x<3;x++)//<span style="color:#ff0000;">可以给循环定义标号</span>
{
n:for(int y=0;y<4;y++)
{
System.out.print("x="+x);
break n;//<span style="color:#ff0000;">根据标号,选择结束循环体</span>
}
}
//Continue;只作用于循环结构,继续循环。特点:结束本次循环,进行下次循环。
for(int i=0;i<10;i++)
{
if(i%2==1)
continue;
System.out.print("x="+i);
}
//嵌套方式
x:for(int x=0;x<3;x++)//可以给循环定义标号
{
y:for(int y=0;y<4;y++)
{
System.out.print("x="+x);
continue x;//根据标号,选择跳出循环体
}
}
//总结:break和continue单独存在时,下面可以有任何语句。因为都执行不到
}
}