switch case语句
- switch中的表达式只能放byte short int char String
- 当多个case语句的输出结果一样时,可以合并到最后一个case语句
- case击穿/case穿透问题:某一case语句中未写入break语句而导致代码会继续执行下一case语句
- if和switch比较: 所有switch能实现的,if都可以实现;反之if能实现的,switch不一定能实现。 switch只能做等值判断,if可以做区间判断
import java.util.Scanner;
public class Switch {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.println("请输入今天周几?");
int i = scanner.nextInt();
switch (i){
case 1:
case 2:
case 3:
case 4:
case 5:
System.out.println("干就完事了");
break;
case 6:
System.out.println("好好睡一觉!");
break;
case 7:
System.out.println("糟糕,假期快没了");
break;
default:
System.out.println("你输入的是个啥???");
break;
}
}
}
循环语句
while循环
while( 循环条件 ) {
//循环内容
}
只要循环条件为 true,循环就会一直执行下去。
do while循环
do {
//代码语句
}while(循环条件);
循环条件在循环体的后面,所以语句块在检测循环条件之前已经执行了。 如果循环条件的值为 true,则语句块一直执行,直到循环条件的值为 false。
while和do while的区别
do…while 循环和 while 循环相似,不同的是,当初始值不满足循环条件的时候,while 循环一次都不会操作,do While循环不管在什么情况下都至少执行一次。
for循环
for(起始值; 循环条件; 循环迭代) {
//代码语句
}
for循环常见的问题
- 没有起始值
- 没有循环条件
- 没有循环迭代 (初始值满足循环条件,会陷入死循环;若不满足,程序无法运行)
- 无条件,会死循环
break continue语句
break 特点
- break语句用于终止某个循环,使程序跳到循环块外的下一条语句
- 在循环中位于break后的语句将不再执行
- 不仅可以用在循环中,也可以用在其他语句中
continue
- continue 适用于任何循环控制结构中。作用是让程序立刻跳转到下一次循环的迭代。
- 在 for 循环中,continue语句使程序立即跳转到更新语句。
- 在 while 或者 do…while 循环中,程序立即跳转到布尔表达式的判断语句。
例题
求1-100之间个位数不为3的数的累加和。
题目描述:求整数1~100的累加值,但要求跳过所有个位为3的数。
题目提示:使用%判个位数是否为3,用continue实现
public class T02 {
public static void main(String[] args) {
int sum=0;
for (int i=0;i<=100;i++){
if (i%10==3){
continue;
}else {
sum=sum+i;
}
}
System.out.println("100以内个位数不为3的累加和为"+sum);
}
}
运行结果
题目描述: 求从1开始第35个能被7和3整除的整数
题目提示: 通过变量记录是第几个可以被3和7整除的数
public class T04 {
public static void main(String[] args) {
int n=0;
for (int i=1;i<1500;i++){
if (i%7==0&&i%3==0){
n++;
while (n==35){
System.out.println(i+"能被7和3整除,"+i+"是第"+n+"个变量");
break;
}
}
}
}
}
运行结果
一张纸0.001米,对折多少次能超过珠穆朗玛峰的高度?
public class T12 {
public static void main(String[] args) {
double i=0.001;
int t=0;
while (i<8848){
t++;
i=i*2;
}
System.out.println("对折"+t+"次超过珠穆朗玛峰");
}
}
运行结果