二.分支结构
if 、else
2.1 单if结构
格式:
if(条件表达式){
语句a
}
语句b
逻辑:判断条件是否满足,如果满足执行语句a,再执行语句b;反之,直接执行语句b。
2.2 标准的if-else
if(条件){
语句a
}else{
语句b
}
语句c
逻辑:条件满足,执行语句a,反之,执行语句b,语句c无论无何都会执行。
注意:if、else的是互斥的;if、else中必须有一个被执行
2.3 多条件的if-else
格式:
if(条件1){
语句a;
}else if(条件2){
语句2;
} else if(条件3){
语句3;
}
…
else{
语句n;
}
语句m;
逻辑:依次判断每一个条件,当有一个条件满足时,就执行对应代码段中的语句,然后执行语句m;如果没有任何一个语句满足条件,则执行最后一个else,然后再执行语句m。
2.4 if-else的嵌套
格式:在if或者else的代码块中又有if-else继续进行判断
三.选择结构
关键字:switch case break default
格式:
**
switch(表达式){
case 值1:
语句a;
break;
case 值2:
语句b;
break;
case 值3:
语句c;
break;
…
default:
语句d;
break;
}
**
逻辑:计算表达式的结果,将此结果与case后的值比较,如果相同,则执行该case后的语句;如果没有一个case后的值与表达式的结果相同,则执行default后的语句。
注意:
1.case 标签可以是: char、byte、short、int、String、枚举
2.case后的值类型必须与表达式的类型一致
3.defaul不是必须的,只有没有任何一个case满足且需要有默认结果时才使用,且位置时任意的,一般位置放在最后。
4.break的作用是结束整个switch-case结构
5.break的穿透性是指在某一个case值与表达式结果匹配时,不写break,程序会继续向下执行直到遇到下一个break,或者运行到switch的末尾。
四. 循环结构
概念:功能反复执行;
循环的四要素:
1.while
格式:
while(条件){
循环体;
}
当条件为 true 时,while 循环执行一条语句(也可以是一个语句块)。
如果开始循环条件的值就为 false, 则 while 循环体一次也不执行。
逻辑:判断条件是否为true,如果为true,则执行循环体,继续判断条件,直到条件为false,循环结束。
// 从1乘到20
int i = 1;
long sum = 1;
while (i < 21) {
sum = sum * i;
i++;
}
System.out.println(sum);
//1-2+3-4+5-6...100
int j = 1;
int sum2 = 0;
while (j <= 100) {
if(j % 2 == 0) {
sum2 -= j;
}else {
sum2 += j;
}
j++;
}
System.out.println(sum2);
2.do-while
格式:
do{
循环体;
}while(条件);
逻辑:先执行一次循环体,判断条件,如果条件为true,则继续执行循环体直到条件为false,结束循环;
注意:do-while循环的循环体至少会执行一次。
3. for
格式:
for(初始值;条件(是否满足);步进表达式){
循环体;
}
逻辑:先初始值,然后判断条件是否满足,如果满足则执行循环体,然后再执行步进表达式,判断条件是否满足,然后再执行循环体,再执行步进表达式…当条件不满足时则跳出。
for (int i = 1; i <= 10; i++) {
System.out.println("*");
}//打出十个*
// 求1~100内包含7的数
for (int i = 0; i <= 100; i++) {
if( i / 10 == 7 || i % 10 == 7) {
System.out.println(i);
}
}
// 求水仙花数,他是一个三位数的数,他的个、十、百位上的数的立方和等于他自己本身
int result = 0;
for (int i = 100; i < 999; i++) {
int a = i % 10;
int c = (i / 10) % 10;
int b = i / 100;
if (Math.pow(a, 3) + Math.pow(b, 3) + Math.pow(c, 3) == i) {
System.out.println(i);
}
}
// 将0.0001米的纸对折多少次,他的厚度会超过8848
double a = 0.0001;
int count = 0;
while (a < 8848) {
a=a*2;
count++;
}
System.out.println(count);
4.死循环
概念:无限循环,循环条件永远为true;
格式:
while(true){
}
do{
}while(true)
for( ; ; ){
}
5.循环嵌套
概念:一个循环作为另一个循环的循环体,作为循环体的循环结构称为内存循环,另一个称为外层循环。
// 乘法口诀表
public static void multiplication() {
for (int i = 1; i <= 9; i++) {
for (int j = 1; j <= i; j++) {
System.out.print(j +"*"+i+"="+i*j+" ");
}
System.out.println();
}
}