Java循环结构
循环结构可以看成是条件判断语句和转向语句的结合。循环结构是指在程序中需要反复执行某个功能而设置的一种程序结构。它由循环体中的条件,判断继续执行某个功能还是退出循环。根据判断条件,循环结构又可细分为以下两种形式:先判断后执行的循环结构和先执行后判断的循环结构。
while循环
while是最基本的循环,它的结构为:
while(布尔表达式){
//循环内容
}
-
只要布尔表达式为true,循环就会一直执行下去
-
我们大多数情况是让循环停止下来的,我们需要一个让表达式失效的方式来结束循环
-
少部分情况需要循环一直执行,比如服务器的请求响应监听等
-
循环条件一直为true就会造成无线循环,正常编程中应该尽量避免死循环,会影响程序性能或造成程序卡死崩溃
通过输出1-100来看while循环
public class while01 {
public static void main(String[] args) {
//输出1-100
int i = 0;
while(i<100){
i++;
System.out.println(i);
}
}
}
在布尔表达式内做出限制条件,当i不小于100时会调出循环,当i<100,i进行自增并输出自增后的值。
while语句运行流程,从while循环进入,判断布尔表达式,真则执行循环体。从执行语句之后,再次回到布尔表达式进行判断,直到布尔表达式判断为错误时,跳出循环。
do...while
-
对于while语句而言,如果不满足条件,则不能进入循环。但我们有时候需要及时不满足条件也至少执行一次。
-
do...while循环和while循环相似,不同的是,do...while循环至少会执行一次
do{ //代码语句 }while(布尔表达式);
while和do...while的区别
-
while先判断后执行,do...while先执行后判断!
-
do...while总是保证循环体会被至少执行一次!这是他们的主要区别
-
do...while循环从按照顺序结构来看,do之后直接进入循环体执行一次,之后进行while判断布尔表达式,因此do...while至少执行一次循环体。
public class while01 {
public static void main(String[] args) {
//输出1-100
int i = 0;
int sum = 0;
do{
sum = sum + i;
i++;
}while(i <= 100);
System.out.println(sum);
}
}
while和do...while对比一下
在代码中,放置相同的循环体。
while循环时,a的值为0,判断a=0,不执行while循环体
do...while循环时间,先执行一次a输出,再进行判断跳出,不再执行输出
For循环
-
虽然虽有的循环结构都可以用whlie或者do...while表示,但Java提供了另一种语句-for循环,是一些循环结构变得更简单
-
for循环语句是支持迭代的一种通用机构,是最有效、最灵活的循环结构
-
for循环执行的次数是在执行前就确定的,语法格式如下:
-
for(初始化;布尔表达式;更新){ //代码语句 }
for循环执行流程,首先初始化语句(可以为空语句),一般为定义之后进行布尔表达式判断,然后执行循环体,在循环体执行结束之后进行更新,再进行布尔表达式判断,在判断式和更新中之间运行,只要判断真就执行循环体,更新再判断,直到判断假跳出循环。
练习1:计算0到100之间所有奇数和偶数的和
定义奇数偶数,利用for循环从0开始加到100,在此过程中对每个数进行判断奇偶。使用if判断每个数字取模i%2是否有余数,余1则为奇无则为偶。然后将各自累加得到总值
public class ForDemo02 {
public static void main(String[] args) {
//练习1:计算0到100之间的奇数和偶数和
int oddSum = 0;//奇数
int evenSum = 0;//偶数
for (int i = 0; i < 100; i++) {
if(i%2!=0){
oddSum+=i;
}else{
evenSum+=i;
}
}
System.out.println("奇数的和:"+oddSum);
System.out.println("偶数的和:"+evenSum);
}
}
i%2可以得到商后的余数,来判断奇偶数
练习2:用while或for循环输出1-1000之间能被5整除的数,并且每行输出3个
使用for循环从1开始判断到1000,再使用if判断能被5整除的数字,每行第三个数字都是能被5和3整除,所以通过判定每行最后一个数字i对15取模。
public class ForDemo03 {
public static void main(String[] args) {
//练习2:使用while或者for循环输出1-1000之间能被5整除的数,并且每行输出3个
for (int i = 0; i < 1000; i++) {
if(i%5==0){
System.out.print(i+"\t");
}
if(i%(5*3)==0){
System.out.println();
}
}
}
}
增强for循环
语法
for(声明语句:表达式){ //代码句子 }
-
声明语句:声明新的局部变量,该变量的类型必须和数组元素的类型匹配,其作用域限定在循环语句块,其值与此时数组元素的值相等
-
表达式:表达式是要访问的数组名,或者是返回值为数组的方法
public class ForDemo05 {
public static void main(String[] args) {
int[] numbers = {10,20,30,40,50};//定义了一个数组
for(int i=0;i<5;i++) {
System.out.println(numbers[i]);
}
System.out.println("======");//分割线
//遍历数组的元素
for(int x:numbers){
System.out.println(x);
}
}
}
增强for循环底层也是使用了迭代器获取的,只不过获取迭代器由jvm完成,不需要我们获取迭代器而已,所以在使用增强for循环变量元素的过程中不准使用集合对象对集合的元素个数进行修改。
普通for循环与增强for循环的区别:普通for循环可以没有遍历的目标,而增强for循环一定要有遍历的目标。
break continue
-
break在任何循环语句的主体部分,均可用break控制循环的流程,break用于强行退出循环,不执行循环中的剩余的语句(break语句也在switch语句中使用)
-
continue语句用在循环语句中,用于终止某次循环过程,跳过循环中尚未执行的语句,接着进行下一次是否执行循环的判定
break
public static void main(String[] args) {
int i =0;
while(i<100){
i++;
System.out.println(i);
if(i==30){
break;
}
}
}
while循环设置i<100,当i小于100时会进行不断自增并且自增一次就输出一次,if判定语句当i=30时会break跳出while循环
break语句用于终止循环,可以用在while循环和for循环中,当循环条件不为False或者序列还没有完全被迭代完毕时,使用break语句也可以使循环停止执行。
continue
大部分情况用于在当前循环条件合适时,不执行当前循环中之后的代码,直接跳出本次循环,但会继续执行下次循环
public class Continue {
public static void main(String[] args) {
int i = 0;
while(i<100){
i++;
if(i%10==0){
System.out.println();
continue;
}
System.out.print(i);
}
}
}
定义i,while从1到100自增每个数字进行判定,对i取模如果能被10整除,则换行输出并且终止当前语句,进行下一次循环。
标签:语句,do,Java,while,循环,执行,public,结构 From: https://blog.csdn.net/qq_57286188/article/details/139448746