循环结构
while循环
while(布尔表达式){
}
- 我们大多数情况是会让循环停止下来的,我们需要一个让表达式失效的方式来结束循环
- 少部分情况需要循环一直执行,比如服务器的请求响应监听等
public class Demo02 {
public static void main(String[] args) {
int i = 0;
while (i<100){
i = i+1;
}
System.out.println(i);
}
}
do…while循环
对于while语句而言,如果不满足条件,则不能进入循环 但有时候我们需要即使不满足条件,也至少执行一次
- do…while循环和while循环相似,不同的是,do…while循环至少会执行一次
do{
}while(布尔表达式);
public class demo {
public static void main(String[] args) {
int i = 0;
int sum = 0;
do{
sum = sum+i;
i =i+1;
}while(i<=100);
System.out.println(sum);
}
}
while和do…whlie的区别
- while先判断后执行
- do…while是先执行后判断
- do…while总是保证循环会被至少执行一次
for循环
- 虽然所有循环结构都可以用while和do…while表示,但Java提供了另一种语句——for 循环,使一些循环结构变得更加简单 for循环语句是支持迭代的一种通用结构,是最有效、最灵活的循环结构
- 在Java5中引入了一种主要用于数组的增强型for循环
- for循环执行的次数是在执行前就确定的
for(初始值;布尔表达式;更新){
}
-
for循环的快捷键 例如输入100.for IDEA自动会帮助我们输入
for (int i = 0; i < 100; i++) { }
-
最先执行初始化步骤,可以声明一种类型,也可以是空语句
练习
- 计算0到100之间奇数和偶数的和
public class demo {
public static void main(String[] args) {
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);
}
}
- 用while或for循环输出1-1000之间能被5整除的数,并且每行输出3个
public class demo {
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.print("\n");
}
}
}
}
- 打印九九乘法表
public class demo {
public static void main(String[] args) {
for (int j = 1; j <= 9; j++) {
for (int i = 1; i <= j; i++) {
System.out.print(i + "*" + j + "=" + (i * j)+"\t");
if (i==j){
System.out.println();
}
}
}
}
}
运用for循环的嵌套
增强for循环
- 在数组重点使用,此处先做了解
- Java5引入了一种主要用于数组或集合的增强型for循环
for(声明语句:表达式){
}
- 声明语句:声明新的局部变量,该变量的类型必须和数组元素的类型匹配 其作用域限定在循环语句块,其值与此时数组元素的值相等
- 表达式:表达式是要访问的数组名,或者是返回值为数组的方法
public class demo {
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]);
}
for (int x:numbers){
System.out.println(x);
}
// 两种循环核心相同,第二种其实是简化的
}
}