专业网站建设分为8步,网站淘客怎么做,网站建设先进个人代表发言,html字体代码大全条件/选择结构
if
if(条件表达式){// 表达式为 true 时#xff0c;执行该代码块
}if(true) {System.out.println(hello);
}if else
if(条件表达式){// 表达式为 true 时#xff0c;执行该代码块
} else {// 表达式为 false 时#xff0c;执行该代码块
}if(1 …条件/选择结构
if
if(条件表达式){// 表达式为 true 时执行该代码块
}if(true) {System.out.println(hello);
}if else
if(条件表达式){// 表达式为 true 时执行该代码块
} else {// 表达式为 false 时执行该代码块
}if(1 2) {System.out.println(hello);
} else {System.out.println(helloworld);
}if else if else
注意判断的顺序后面的判断只有在前面的条件为 false 时才执行。
if(条件表达式1){// 表达式1为 true 时执行该代码块
} else if(条件表达式2) {// 表达式2为 true 时执行该代码块
} else {// 上述表达式都为 false 时执行该代码块
}int score 70;if(score 90) {System.out.println(优秀);
} else if(score 80) {System.out.println(良好);
} else if(score 70) {System.out.println(一般);
} else if(score 60) {System.out.println(及格);
} else {System.out.println(不及格);
}⭐switch(express) case
根据表达式的值匹配 case匹配后执行后面的代码遇到 break 结束没有匹配的值则执行 default 后的语句。
case 值的类型可以是byte、short、int、char判断时转为整数、枚举Enum有对应的整数、String 1.7 后。通过 hashcode 转换为整数比较如果相同再根据内容判断。
case 语句中的值的数据类型必须与变量的数据类型相同而且只能是常量或者字面常量。
case 中的语句碰到 break 或者执行完后续所有语句才会停止case 语句后面通常会加 break也可利用这种特性 case 穿透。
switch(条件) {case 情况1:语句1;break;// ...default:// 默认语句;
}int month 6;
switch(month) {case 3:case 4:case 5:// case 穿透System.out.println(春天);break;case 6:case 7:case 8:System.out.println(夏天);break;case 9:case 10:case 11:System.out.println(秋天);break;default:System.out.println(冬天);
}循环结构
while
while(条件表达式){// 表达式为 true 时执行该循环体代码块
}int i 7;
while(i 5){System.out.println(i);i--;
}do while
do {// 先不判断执行一次该循环体代码块后面表达式为 true 时执行该循环体代码块
} while(条件表达式)int i 5;
do {System.out.println(i);i--;
} while(i 5);for
for(初始化语句;判断循环条件;改变循环条件){// 循环条件判断为 true 时执行该循环体代码块
}for(int i 0;i 7;i){System.out.println(i);
}foreach
JDK1.5 引进了一种新的循环方式称为 foreach 循环或者加强型循环。
foreach 不是一个关键字它使用下面的形式来遍历数组或集合。
int[] arr {1, 2, 3, 4};
for(int ele: arr) {System.out.println(ele);
}循环控制
continue 跳过本次循环
for(int i 0;i 7;i){if(i3) continue;System.out.println(i);
}break 结束循环
for(int i 0; i 7; i){if(i 3) break;System.out.println(i);
}注意break 后i 不会再执行。
return结束方法执行
lable 标记
Java 语言允许语句的前面有标签label相当于定位符用于跳转到程序的任意位置格式如下
label:
语句;标签可以是任意的标识符但不能是保留字语句部分可以是任意语句。
标签通常与 break 语句和 continue 语句配合使用用于跳出特定的循环。
outer:
for (int i 0; i 3; i){for (int j 0; j 3; j){if (i 1 j 1) {break outer;}System.out.println(i i , j j);}
}
// i0, j0
// i0, j1
// i0, j2
// i1, j0上面代码为一个双重循环区块break 命令后面加上了 outer 标签。
满足条件时直接跳出双层循环。如果 break 语句后面不使用标签则只能跳出内层循环进入下一次的外层循环。
continue 语句也可以与标签配合使用满足条件时会跳过当前循环直接进入下一轮外层循环。如果 continue 语句后面不使用标签则只能进入下一轮的内层循环。
⭐跳转指令
程序运行时实际是一条条的指令CPU 有一个 指令指示器指向下一条要执行的指令CPU 根据指示器的指示加载指令并且执行。
大部分指令是具体的操作和运算在执行这些操作时执行完一个操作后指令指示器会自动指向下一条指令。
但有一些特殊的指令称为 跳转指令这些指令会修改指令指示器的值让 CPU 跳到一个指定的地方执行。
跳转有两种一种是条件跳转条件跳转检查某个条件满足则进行跳转另一种是无条件跳转无条件跳转是直接进行跳转。
选择结构和循环结构最终会转为这些跳转指令比如
int a 10;
if( a % 2 0 ){System.out.println(偶数);
}
System.out.println(其它代码);转换后的指令可能是
int a 10;
条件跳转如果 a % 2 0跳转到第 4 行
无条件跳转跳转到第 5 行
System.out.println(偶数);
System.out.println(其它代码);switch 的转换和具体系统实现有关。如果分支较少可能会转为跳转指令如果分支较多条件跳转会进行多次的比较运算效率比较低可能会使用一种更高效的方式叫跳转表。
跳转表是一个映射表存储了可能的值统一转为整数以及要跳转的地址跳转表值的存储空间一般为 32 位容纳不下 long。
条件值跳转地址条件1代码块1的地址条件2代码块2的地址
switch 表达式实质是整型值得比较跳转表可以进行二分查找为此跳转表会进行排序如果值比较连续的还会进一步优化为数组可以根据索引直接进行跳转。