循环结构
for 循环
语法:
for(循环变量初始化1;循环条件2;循环变量自增3){
循环体4;
}
for(i=0; i<10; i++){
循环体;
}
代码块里的代码可以很复杂,啥都能写
循环变量初始化:
循环变量初始化是循环的初始条件,是整个for循环最先执行的步伐,并且 只会执行一次.
循环条件:
循环条件,是循环的条件,循环条件多么复杂,最后一定能计算出确定的boolean值(true/false). 如果为true,则循环继续,如果为false,则循环结束.
循环变量自增:
循环变量自增,是每一次循环执行的代码.
for循环执行循序:
循环变量初始化 => 循环条件 => 循环体 => 循环变量自增 =>循环条件 => 循环体 => 循环变量自增 =>循环条件 => 循环体 => 循环变量自增 =>....
while 循环
while 语法:
while(表达式){ 循环体; } 1. 小括号内的表达式,一定能最后计算出 true/false 的结果. 2. 先判断循环条件,如果小括号内为true,继续执行循环体的代码. 循环体执行完毕后,会再次判断循环条件,直到循环条件变为false,为false退出循环. 3. 执行顺序: 表达式 => 代码 => 表达式 => 代码 => 表达式 => 代码.....
for循环和while循环的选择
代码生涯中如何选择for 和 whlie 如果确定要循环多少次,就选for 如果不确定要循环多少次,就选whlie
do-while 循环
do-while 语法:
do { 循环代码块; }while(循环条件); 执行顺序: 循环代码 => 循环条件 => 循环代码 => 循环条件.... 这种循环,无论条件如何,循环代码至少能执行1次, 然后进行条件判断,如果为true,则再次执行循环体. 但是 总的执行次数 并不比 正常的while循环 多.
break 和 continue
break 和 continue 是在循环内部,对循环进行控制的.
当程序执行 break 的时候,会无条件终止当前循环.
continue 跳过当前 这一次 循环.
for (int i = 0; i < 10; i++) {
System.out.println(i);
if (i == 5) {
break;
}
System.out.println(i);
}
for (int i = 0; i < 10; i++) {
if (i == 5) {
continue;
}
System.out.println(i);
}
public static void main(String[] args) {
// 循环嵌套
// 99乘法表
// 内层走完 外层走一个
for (int i = 1; i <= 9; i++) { // 控制第一个数
for (int j = 1; j <= i; j++) { //控制第二个数
System.out.print(i + "*" + j + "=" + i * j + "\t");
}
System.out.println();//换行
}
}
/**
* 冒号排序:
* 核心思想: 保证,数组中 右边的数 >= 左边的数,否则就交换这两个数.
* 从小到大排序:
*/
int[] arr = {1, 3, 5, 2, 4};
//这个循环负责 循环5次
for (int j = 0; j < arr.length; j++) {
for (int i = 0; i < arr.length - 1; i++) {
// 如果第一个元素小于第二第二个元素,就交换它俩的位置.
if (arr[i + 1] < arr[i]) {
int temp = arr[i];
arr[i] = arr[i + 1];
arr[i + 1] = temp;
}
}
}
//输出整个数组看结果
for (int i = 0; i < arr.length; i++) {
System.out.println(arr[i]);
}
下面这种也可以,不用遍历直接输出数组.
System.out.println(Arrays.toString(arr));
- 变量的作用域:
从变量声明开始,一直到变量声明时所在的大括号{}的末尾.
在同一个作用域,同一个变量不能声明两次.