1.3 continue
continue 的功能是跳过这次循环,立即进入下次循环
实例:找到 100 - 200 中所有 3 的倍数
public static void main(String[] args) { int num = 100; while (num <= 200) { if (num % 3 != 0) { num++; // 这里的 ++ 不要忘记! 否则会死循环. continue; } System.out.println("找到了 3 的倍数, 为:" + num); num++; } }
🍤 运行结果:
执行到 continue 语句的时候,就会立刻进入下次循环(判定循环条件),从而不会执行到下方的打印语句。
1.4 for 循环
基本语法:
for(表达式1;布尔表达式2;表达式3){ 表达式4; }
表达式1: 用于初始化循环变量初始值设置,在循环最开始时执行,且只执行一次
表达式2: 循环条件,满足则循环继续,否则循环结束
表达式3: 循环变量更新方式
实例1:打印 1-10 的数字
public static void main(String[] args) { for (int i = 1; i <= 10; i++) { System.out.println(i); } }
🍤 运行结果:
实例2:计算 1-100 的和
public static void main(String[] args) { int sum=0; for (int i = 1; i <= 100; i++) { sum += i;//sum=sum+i 累加 //第一次:sum=0+1=1 //第二次:sum=1+2=3 //第三次:sum=3+3=6... } System.out.println("sum = " + sum); }
实例3:计算 5 的阶乘
public static void main(String[] args) { int result = 1; for (int i = 1; i <= 5; i++) { result *= i; //第一次:result=1*1=1 //第二次:result=1*2=2 //第三次:result=2*3=6... } System.out.println("result = " + result); }
实例4:计算 1!+2!+…+5!
public static void main(String[] args) { int sum = 0; //外循环:求和 for (int i = 1; i <= 5; i++) { int tmp = 1; //内循环:计算每位数字的阶乘 for (int j = 1; j <= i; j++) { tmp *= j; } sum += tmp; } System.out.println("sum = " + sum); }
注:
- 和 if 类似,for 下面的语句可以不写 { } ,但是不写的时候只能支持一条语句,建议还是加上 { }。
- 和 if 类似,for 后面的 { 建议和 while 写在同一行。
- 和 if 类似,for 后面不要多写分号,否则可能导致循环不能正确执行。
- 和while循环一样,结束单趟循环用continue,结束整个循环用break。
1.5 do…while循环
基本语法:
do{ 循环语句; }while(循环条件);
先执行循环语句,再判定循环条件,循环条件成立则继续执行,否则循环结束。
实例: 打印 1-10 的数字
public static void main(String[] args) { int num = 1;//num 的初始条件 do { System.out.println(num); num++; } while (num <= 10);//循环条件 }
注:
- do while 循环最后的分号不要忘记。
- 一般 do while 很少用到, 更推荐使用 for 和 while。
- 无论是否满足循环条件,都会先执行一次循环语句。
2. 输入输出
2.1 输出到控制台
基本语法:
System.out.println(msg); // 输出一个字符串, 带换行 System.out.print(msg); // 输出一个字符串, 不带换行 System.out.printf(format, msg); // 格式化输出
println 输出的内容自带 \n,print 不带 \n。(\n:换行)
printf 的格式化输出方式和 C 语言的 printf 是基本一致的。
代码示例:
public static void main(String[] args) { System.out.println("hello world");//直接打印 hello world int x = 10; System.out.printf("x = %d\n", x);//打印 x=10 }
格式化字符串
转换符 | 类型 | 举例 | 结果 |
d | 十进制整数 | (“%d”,100) | 100 |
x | 十六进制整数 | (“%x”,100) | 64 |
o | 八进制整数 | (“%o”,100) | 144 |
f | 定点浮点数 | (“%f”,100f) | 100.000000 |
s | 字符串 | (“%s”,100) | 100 |
c | 字符 | (“%c”,‘1’) | 1 |
b | 布尔值 | (“%b”,100) | true |
% | 百分号 | (“%.2f%%”,2/7f) | 0.29% |