循环语句for与while的使用
首先是最经常使用的for语句,下面看看for语句的结构:
for 语句的基本结构如下所示:
for(初始化表达式;判断表达式;递增(递减)表达式){
执行语句; //一段代码
}
初始化表达式:初始化表达式的意义,在于定义循环之前变量的值是多少,如果没有这一项,就不知道该从哪个值开始循环。
判断表达式:判断表达式的作用在于规定循环的终点。如果没有判断表达式,那么此循环就成了死循环。
递增(递减)表达式:这一项规定每执行一次程序,变量以多少增量或减量进行变化。
结构清楚了,现在就举一个最基础的例子来介绍一下:(这个例子是循环输出0到5的数字。
public class demo {
public static void main(String[] args) {
//for循环基础写法
for(int i=0;i<5;i++){
System.out.println("i:"+i);
}
}
}
如果不想在for中进行初始化的可以这么写:
public class demo {
public static void main(String[] args) {
//for循环中初始化放在外面的写法
int j=0;
for(;j<=6;j=j+2){
System.out.println("j:"+j);
}
}
}
如果想要利用for语句实现死循环的可以这么写:
public class demo {
public static void main(String[] args) {
// for特性写法
for(;;){
System.out.println("yes");
}
}
}
如果想要利用for来遍历数组或者遍历集合对象的,可以这么写:
public class demo {
public static void main(String[] args) {
//利用for循环进行遍历数组或者对象
String[] strNum={"张三","李四","王五"};
for(String str:strNum){
System.out.println("name:"+str);
}
}
}
如果想要利用for实现多层循环的,可以这么写:
public class demo {
public static void main(String[] args) {
//for实现双层循环
for(int i=0;i<5;i++){
for(int j=0;j<5;j++){
System.out.print(j+" ");
}
System.out.println("i:"+i);
}
}
}
不过这里需要注意的是:开发过程中尽量少写多层循环,因为多层循环非常耗费时间,效率特别低下。
现在在来给大家介绍一下while的结构和用法:
while 关键字的中文意思是“当……的时候”,也就是当条件成立时循环执行对应的代码。while 语句是循环语句中基本的结构,语法格式比较简单。
while 语句语法格式:
while(循环条件){
循环体;
}
语法说明:和if 语句类似,如果不是用代码块的结构,则只有while后面的第一个语句是循环体语句。在该语法中,要求循环条件的类型为boolean类型,指循环成立的条件,循环体部分则是需要重复执行的代码。
执行流程:在执行while 语句时,首先判断循环条件,如果循环条件为false,则直接执行while 语句后续的代码,如果循环条件为true,则执行循环体代码,然后再判断循环条件,一直到循环条件不成立为止。
接下来就举一个简单的例子,给大家介绍一下while具体的使用方法:
public class demo {
public static void main(String[] args) {
//while基本
int i=0;
while(i<5){
System.out.println("i:"+i);
i++;
}
}
}
如果想要使用break或者continue来控制while退出的条件,可以这么写:
public class demo {
public static void main(String[] args) {
//使用break或者continue
int accout=0;
while(true){
System.out.println("accout:"+accout);
accout++;
if(accout==5){
break;
}
if(accout==2){
continue;
}
}
}
}
但是如果这么写的话就会出现死循环:
public class demo {
public static void main(String[] args) {
//这样的写法会导致死循环的出现
int accout=0;
while(true){
if(accout==5){
break;
}
if(accout==2){
continue;
}
System.out.println("accout:"+accout);
accout++;
}
}
}
1.for一般是在循环个数已知的情况下使用的
2.while一般是在循环个数未知,且循环受到严格控制的情况下使用的。