1. While循环
while(布尔表达式){//循环内容}
a. 只要布尔表达式为true,循环就会一直执行下去。
b. 大多数情况下要让循环停止,徐亚一个让表达式失效的方式来结束循环。
c. 少部分情况需要循环一直执行,比如服务器的请求响应接听等。
d. 循环条件一直为true就会造成无限循环(死循环),正常业务编程中应避免,会影响程序性能或者造成程序卡死奔溃。
2. do…while循环
a. 对于while语句而言,不满足条件时不能进入循环。但有时候即使不满足条件,也至少要执行一次。
b. while:先判断后执行;
do…while:先执行后判断,至少会执行一次。
do{//代码语句}while(布尔表达式);
3. for循环
a. for循环语句是支持迭代的一种通用结构,是最有效、最灵活的循环结构。
b. for循环执行的次数是在执行前就确定的。语法格式如下:
for(初始化;布尔表达式;更新){//代码语句}
c. 快捷:输入"100.for"再回车(或者Tab键)之后,自动生成如下语句:(100可替换成任意数)
for (int i = 0; i < 100; i++) {}
d. 死循环:for( ; ; ;){ }
例题:
例1:计算0到100之间的奇数和偶数的和(不含100)。
方法一:
public class data {public static void main(String[] args) {int oddSum = 0;int evenSum = 0;for(int i=0;i<100;i+=2){evenSum = evenSum + i;}for(int i=1;i<100;i+=2){oddSum = oddSum + i;}System.out.println("1~100间奇数的和为"+oddSum);System.out.println("1~100间偶数的和为"+evenSum);}}
方法二:
public class data {public static void main(String[] args) {int oddSum = 0;int evenSum = 0;for(int i=0;i<100;i++){if(i%2 != 0){oddSum = oddSum + i;}else{evenSum = evenSum + i;}}System.out.println("1~100间奇数的和为"+oddSum);System.out.println("1~100间偶数的和为"+evenSum);}}
例2:输出1-1000之间能被5整除的数,并且每行输出3个。
注意:System.out.print()
:输出完不换行
System.out.println()
:输出完换行
public class data {public static void main(String[] args) {for (int i = 0; i < 1000; i++) {if(i%5 == 0){System.out.print(i+"\t");}if(i%(5*3) == 0){System.out.println();//System.out.println("\n");//以上两种换行方法二选一}}}}
例3:打印九九乘法表。
public class data {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+"="+(j*i)+"\t");}System.out.println();}}}
4. Java中引入了一种主要用于数组的增强型for循环
格式:
for(声明语句 :表达式){// 代码语句}
a. 声明语句:声明新的局部变量,该变量的类型必须和数组元素的类型匹配,其作用域限定在循环语句块,其值与此时数组元素的值相等。
b. 表达式:表达式是要访问的数组名,或者是返回值为数组的方法。
例:遍历数组元素
public class data {public static void main(String[] args) {int[] numbers = {10,20,30,40,50};for(int x : numbers){System.out.println(x);}}}
结果: