java循环语句

0 阅读3分钟

while循环

  • while循环,当条件满足时执行循环内的内容
//while的用法  
while(控制循环的表达式){  
 //只要控制表达式为true,就会不断执行这里的代码  
}  
  
//死循环  
while(true){  
}  

do while循环

  • do while 先执行do语句代码块内的内容,再根据while中的条件是否满足,决定是否再次执行do语句后的代码块
//do while的用法  
do{  
 //只要控制表达式为true,就会不断执行这里的代码  
}while(控制表达式);

do while和while的区别

  • while需要先判断表达式是否成立,只有成立才会执行循环体里面的代码
  • do while,无论如何都会先做一次循环,做完一次循环之后再去判断条件是否成立

for循环

  1. 初始化操作:设定一个变量,类似于是一个计数器,用来控制循环是否要继续,或者是退出;

    • int number = 1;
    • 一般控制循环的变量,不会在循环体外面使用,所以多数时候都在for里面定义。
  2. 循环的条件:和while类似,只有条件满足的时候才会进入循环体,不满足的时候直接跳出循环;

  3. 步进(每一步都会执行的动作):每一轮循环后,都会执行这里的动作,一般情况都在这里控制循环的变量,多数时候加减。

//number开始的时候等于1,当它<=100的时候,进入到循环体,每次循环执行完毕,执行加1  
for (int number = 1; number <= 100; number = number + 1) {  
 System.out.println(number);  
}  
  
for(初始化操作;进入循环的条件;每一次循环都会执行的动作){  
 //循环体  
}  
  
//for里面的表达式可以被省略  
for (; ;){}  
  
for可以不写大括号,但是不建议  
for(; ;) 语句;

foreach语句

  • 语法
for(变量类型 变量名: 迭代对象){
		操作,如:
		System.out.println(变量名);
}
  • 使用例子
ArrayList<String> student = new ArrayList<>();    
student.add("小孙");  
student.add("小王");  
student.add("小李");
//使用foreach进行迭代
for(String str : student){  
   System.out.println(str);  
}//意思是说将student对象中的内容一个一个的拿出给String变量str保存
  • 对于不可迭代的对象会隐式的将参数列表第二个元素转换为可迭代对象,类似于Iterator类中的iterator()方法
HashSet<String> set = new HashSet<>();  
set.add("老孙");  
set.add("老王");  
set.add("老孙");

for(String str : set){  
   System.out.println(str);  
}
//相当于
Iterator<String> iterator = set.iterator();
while (iterator.hasNext()){  
   String next = iterator.next();  
   System.out.println(next);  
}

如何选择

  • 知道固定的循环次数,用for;
  • 不知道循环次数,但是知道循环终止的条件,用while;
  • 必须执行一次循环体,do while,哪怕第一次循环判断是false;

break和continue语句

  • break执行会终止本次循环
  • continue会终止本次循环,然后直接执行下次循环
//break
if(true){  
 //可以终止当前的for、while、do while循环,并且不再执行后续的循环  
 break;  
}
//continue
if(true){  
 ////可以终止本次的for、while、do while循环,并且直接开始下一次的循环  
 continue;  
}
  • 我们可以给某个循环取名字来实现在跳出多个循环
STOP:  
for(初始化操作;循环的条件;每一步都会执行的动作){  
 //循环体  
 for(初始化操作;循环的条件;每一步都会执行的动作){  
  if(true){  
  //可以控制最外层的循环  
  break STOP;  //这里会直接跳出外层循环,因为前面的代码给外层循环取名为STOP
  }  
 }  
}