循环
switch case语句
格式:
1 switch(表达式/变量){
2
3 case 常量值1:
4
5 //语句体内容1
6
7 break;
8
9 case 常量值2:
10
11 //语句体内容2
12
13 break;
14
15 ... ...
16
17 default:
18
19 //语句体n
20
21 break;
22
23 }
执行流程:
1.首先算出表达式的值。
2.依次和case后面的常量值做比较,如果相等,就执行相应的语句体内容,
在执行过程中,遇到break就会结束switch case语句。
3.如果表达式值和case后的常量值都不相等,就执行default中的语句体内容,
然后此switch case语句结束。
注意:1.每个case,和default后都会有break,敲代码的时候很容易忽略;
2.case后的常量值,要加冒号":".
1 char c = 'a';
2 switch(c){
3 case 'a':
4 System.out.print("pido ");
5 default:
6 System.out.print("online");
7 }
8 代码的运行结果是_________;
答案:pido online
解析:1.首先这个switch语句,每个case,和default后都没有 break;语句;
2.没有break语句,根据表达式找到对应的case后,会执行这个case和其下面的所有语句,直到遇到break,或执行完最后一行代码。
3.其次输出语句没有换行,输出的内容会在一行;
面试题:switch后面的表达式的值可以是什么类型?可以是字符串类型吗?
答:表达式的数据类型,可以是byte/short/int/char/enum(枚举),JDK1.7之后可以接收字符串类型。
for循环
格式:
1 for(1.初始化语句; 2.条件判断表达式; 4.迭代语句) {
2 // 3.循环体内容
3 }
执行流程:
1.执行顺序:1 -> 2 -> 3 -> 4 -> 2 -> 3 -> 4 -> 2 -> 3 -> 4 -> ...2,直到不满足表达式为止。
2.初始化语句:负责循环变量的初始化;
3.条件判断表达式:循环的条件,不满足退出循环。
4.循环体内容:满足循环条件后,执行的代码块
5.迭代语句:负责变量的迭代
附: 1.for循环的大括号,可以不写(最好写上)
(不要复制我的这个代码测试,手敲才行,因为有可能会复制到系统识别不了你又看不见的字符,就报错了)
1 int sum = 0;
2 for(int n = 1; n < 10; n++)
3 sum+=n;
4 System.out.println(sum);
2.如果刚学for循环,肯定不知道迭代是什么意思
其实迭代就是,for循环中的变量,怎么增加,或减少(比如1,2,3,4这样加,或2,4,6这样加)
如果减少的话,可以写"n--"。
1 int sum = 0;
2 for(int n = 1; n < 10; n+=2) {
3 sum += n;
4 System.out.println(sum);
5 }
3.如果在草稿纸上按照执行顺序画的话,像一把小旗,for循环也叫红旗循环。
4.for循环中小括号中三部分内容,都可以按需求不写。
break 和 continue:
break就直接结束循环,或结束语句。
1 int i = 0;
2 while (i >= 0) {
3 i = i + 1;
4 if (i == 10) {
5 break;
6 }
7 System.out.println(i);
8 }
注意:i迭代到10后,执行break语句,程序就结束了,不会再执行输出语句。
continue是结束本次循环,继续下次循环。
1 public static void main(String[] args) {
2 // continue
3 // 求一下100以内的偶数和 2+4+6+8+10+....+100
4 int sum = 0;
5 for (int i = 1; i <= 100; i++) { // i= 1 2 3 4 5 6 7 8 9 10 ......
6 //使用场景 奇数跳过去,不参与累加和
7 if (i % 2 != 0) {
8 continue;
9 }
10 sum += i;
11 }
12 }
最后:
1.死循环:循环条件永远为true,没有结束条件的循环。例如:while(true){}
死循环一般要和跳出语句结合
2.循环嵌套:指一个循环体是另一个循环,循环的次数 = 外部循环次数 * 内部循环的次数
最经典的例子莫过于九九乘法表了。
1 for (int i = 1; i <= 9; i++) {
2 for (int j = 1; j <= i; j++) {
3 System.out.print(i + "*" + j + "=" + (i * j) + " ");
4 }
5 System.out.println();
6 }
浙公网安备 33010602011771号