循环结构三大循环

循环结构

while 循环

do while 循环

for 循环

while 是最基本的循环,他的结构为:
1
2
3
while(不二表达式){

//循环体内容}

只要布尔表达式为TRUE,循环就会一直执行下去。

我们大多数情况是会让循环停止下来的,我们需要一个让表达式失效的方式来结束循环。

少部分情况需要循环一直执行例如服务器响应监听。

循环条件一直为TRUE就会造成死循环,我们正常的业务编程中应该尽量避免死循环,会影响程序性能或者造成程序卡死崩溃!

do while 循环

对于while 语句而言,如果不满足条件,则不能进入循环。但有时候我们需要即使不满足条件也至少执行一次。

do while 循环和while循环相似,不同的是,do while 循环至少执行一次。

1
2
3
  do {

//代码语句,循环体}while(布尔表达式);

while和do while的区别:

  1. while先判断后执行,do while是先执行后判断!

  2. do while 总是保证循环体会之前被执行一次!这是他们的主要差别

for循环

虽然所有循环体结构都可以用while或者do..while表示,但JAVA提供了另一种for循环,使一些循环结构变得更加简单

for循环语句是支持跌代的一种通用结构,是最有效,最灵活的一种结构

for 循执行的次数是在执行前就确定的代码语句:

1
2
3
4
5
for(初始化;布尔表达式;更新或步进语句){

//代码循环体;代码语句;

}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
public class ForDemo01{
public static void main(String []args){
int a = 1;//初始化条件
while(a<=100){//条件判断
System.out.println(a);//循环体
a+=2; //迭代
}
System.out.println("while 循环结束");
//初始化 //条件判断 //迭代
for (int i=1;i<=100;i++){
System-out.println("for循环结束");
}
}
}

关于 for 循环有以下几点说明:

1.最先执行初始化步骤,可以声明一种类型,但可初始化一个或多个循环控制变量,也可以是空语句。(死循环)
2.然后检车布尔表达式的值,如果是true,循环体被执行。如果为false,循环终止,开始执行循环体后面的语句。
3.执行一次循环后,更新循环控制变量(迭代因子控制循环变量的增减)。再次执行上面的过程。
1
2
3
4
//死循环
for(; ;){

}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
public class ForDemo02 {
//输出1-1000被5整除的数字并一行显示4个
public static void main(String[] args) {
int sum = 0;
for (int i = 1; i <= 1000; i++) {
if (i%5==0){
System.out.print(i+"\t");
}
if (i%(5*3)==0){
System.out.println();
}
}
System.out.println("============================");
int j = 1;
while(j<=1000){
j++;
if (j%5==0){
System.out.print(j + "\t");
if (j%20==0) {
System.out.println();
}
}
}
}
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
public class ForDemo01 {
public static void main(String[] args) {
// 0- 100 奇数 偶数、之和
int oddSum = 0;
int evenSum = 0;
for (int i = 1; i <= 100; i++) {
if (i%2!=0){
oddSum+=i;

}else {
evenSum+=i;

}
}
System.out.println(evenSum);
System.out.println(oddSum);
}
}

1
2
3
4
5
6
7
8
9
10
11
12
13
public class ForDemo05 {
// 9 9乘法表
public static void main(String[] args) {
for (int i = 1; i <= 9; i++) {
for (int j = 1; j <= i; j++) {
System.out.print(j+"*"+i+"="+(i*j)+"\t");
}
System.out.println();
}

}

}

增强for 循环

这里先做了解,之后数组和集合重点使用

格式:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
for(声明语句:表达式){
//代码句子
}
public class ForDemo06 {
public static void main(String[] args) {
int [] num ={10,20,30,40};//定义了一个数组

for (int i =0; i<5 ; i++){
System.out.println(num[i]);
System.out.println("================");
}
//遍历数组元素 增强for循环核心还是上者
for (int x :num){
System.out.println(x);
}
}

声明语句:声明新的局部变量,该变量的类型必须和数组元素的类型匹配。其作用域在循环语句块,其值与此时数组元素的值相等。

表达式: 表达式时要访问的数组名,或者是返回值为数组的方法。

break 和 continue

  • break在任何循环语句的主体部分,均可用break控制循环的流程。break用于强行退出循环,不执行循环中剩余的语句。(break语句也在switch语句中使用)

  • continue 语句用在循环语句体中,用于终止某次循环过程,即跳过循环体中尚未执行的语句,接着进行下一次是否执行循环的判断。

关于goto关键字

  • #### goto关键字很早就在程序设计语言中出现。尽管goto仍是java的一个保留字,但并未在语言中得到正式使用;Java 没有goto,然而,在break和continue这两个关键字的身上,我们仍然能看出一些goto的影子---带标签的break和continue。
    
  • “标签”是指后面跟一个冒号的标识符,例如:label:

  • 对Java来说唯一用到标签的地方是在循环语句之前。而在循环之前设置标签的唯一理由是:我们希望在其中嵌套另一个循环,由于break和continue关键字通常只中断当前循环,但若随同标签使用,他们就会中断到存在标签的地方。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
    public static void main(String[] args) {
//打印101-105之间所有的质数
//质数是指在大于1的自然数中,除了1和它本身以外不在有其他的自然数。
int count =0;

outer:for (int i = 101; i < 150; i++) {
for (int j =2;j<i/2;j++){
if (i % j == 0){
continue outer;
}
}
System.out.println(i+" ");

}
}
}

版权声明: 本网站所有文章除特别声明外,著作权归作者所有。转载请注明出处!

-------- 本文结束 感谢阅读 --------