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);
}
}
}
结果: