if else 基本使用
if else 有三种形式
| 12
 3
 4
 5
 6
 7
 8
 9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 
 | class IfElse {public static void main(String[] args)
 {
 int age = 60;
 
 if(age > 18){
 System.out.println("已经成年了");
 }
 
 
 if(age > 18){
 System.out.println("已经成年了");
 }else{
 System.out.println("未成年");
 }
 
 
 if(age < 18){
 System.out.println("未成年");
 }else if(age < 35){
 System.out.println("青年");
 }else if(age < 60){
 System.out.println("中年");
 }else if(age < 120){
 System.out.println("老年");
 }else{
 System.out.println("墓年");
 }
 }
 }
 
 | 
Scanner基本使用
首先导入 Scanner 包
然后实例化
最后使用不同的类型接收不同类型的变量
| 12
 3
 4
 5
 6
 7
 8
 9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
 33
 34
 35
 36
 37
 
 | 
 
 
 
 
 
 
 import java.util.Scanner;
 
 class ScannerTest {
 public static void main(String[] args) {
 
 Scanner sc = new Scanner(System.in);
 
 System.out.println("请输入您的姓名");
 
 String name = sc.next();
 
 System.out.println("请输入您的年龄");
 
 int age = sc.nextInt();
 
 System.out.println("请输入您的体重");
 
 double weight = sc.nextDouble();
 
 System.out.println("是否看上眼(false/true)");
 
 boolean islove = sc.nextBoolean();
 
 
 System.out.println("姓名:" + name + "," + "年龄:" + age + "," + "体重:"
 + weight + "," + "是否满意:" + islove);
 
 }
 }
 
 | 
SwitchCase使用
基本语法结构
| 12
 3
 4
 5
 6
 7
 8
 
 | switch(判断语句){case 条件1:
 break;
 case 条件2:
 break;
 default:
 break;
 }
 
 | 
连续判断语法结构
| 12
 3
 4
 5
 6
 7
 8
 
 | switch(判断语句){case 条件1:
 case 条件2:
 
 break;
 default:
 break;
 }
 
 | 
switch 判断只能值如下6中数据类型
- byte
- short
- char
- int
- 枚举类型(sdk5.0新增)
- String类型 (sdk7.0新增)
case 只能声明一个常量,不能声明范围
break 字段是可选的,case 判断遇到 break 时会退出判断,如果没有 brea 则一直往下判断
default 当所有的 case 都没有判断成功时会进入到 default 中,相当于 if else 中的 else
代码示例
| 12
 3
 4
 5
 6
 7
 8
 9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
 33
 34
 35
 
 | import java.util.Scanner;class SwitchCase{
 public static void main(String[] args){
 Scanner sc = new Scanner(System.in);
 
 System.out.println("请输入1~10");
 int num = sc.nextInt();
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 switch(num){
 case 1:
 case 2:
 System.out.println("你输入了1或者2");
 break;
 default:
 System.out.println("出错了");
 break;
 }
 
 }
 }
 
 | 
循环结构
循环结构:在某些条件满足的情况下,反复执行一段特定的代码
Java中有三种循环结构
- for循环
- while循环
- do while 循环
所有循环结构都有下面四要素
- 初始化条件
- 循环条件 类型要求为布尔类型
- 循环体
- 迭代条件
For 循环
for 循环结构
| 12
 3
 4
 5
 6
 7
 8
 
 | 1.初始化条件2.循环条件 必须是一个布尔值
 3.循环体
 4.迭代条件
 
 for(1;2;4){
 3
 }
 
 | 
执行方式: 1 -> 2 -> 3 -> 4 -> 2 -> 3 -> 4 -> … -> 2(不满足) -> 退出循环
代码示例
| 12
 3
 4
 5
 6
 7
 8
 9
 10
 11
 12
 13
 14
 15
 
 | class For{public static void main(String[] args){
 
 
 
 int sum = 0;
 for(int i=1; i <= 100; i++){
 if(i % 2 == 0){
 sum += i;
 System.out.println(i);
 }
 }
 System.out.println("100以内的偶数总和为" + sum);
 }
 }
 
 | 
While 循环
while 循环结构
写 while 循环时一定要注意防止死循环
| 12
 3
 4
 5
 6
 7
 8
 9
 10
 
 | 1.初始化条件2.循环条件 必须是一个布尔值
 3.循环体
 4.迭代条件
 
 1;
 while(2){
 3;
 4;
 }
 
 | 
执行过程 1 -> 2 -> 3 -> 4 -> 2 -> 3 -> 4 -> … -> 2(不满足) -> 退出循环
代码演示
| 12
 3
 4
 5
 6
 7
 8
 9
 10
 11
 
 | class While {public static void main(String[] args){
 int i = 1;
 while(i <= 100){
 System.out.println(i);
 i++;
 }
 
 System.out.println(i);
 }
 }
 
 | 
Do While 循环
| 12
 3
 4
 5
 6
 7
 8
 9
 10
 11
 12
 
 | do while 循环结构1.初始化条件
 2.循环条件 必须是一个布尔值
 3.循环体
 4.迭代条件
 
 
 1;
 do{
 3;
 4;
 }while(2)
 
 | 
执行循序 1 - 3 - 4 - 2 - 3 - 4 - 2 - 3 - 4 - … - 2(不满足) - 退出循环
do while 循环特定,不管条件是否成立,至少会执行一次循环体
| 12
 3
 4
 5
 6
 7
 8
 9
 10
 11
 
 | class DoWhile {
 public static void main(String[] args)
 {
 int i = 1;
 do{
 System.out.println(i);
 i++;
 }while(i <= 100);
 }
 }
 
 | 
无限次循写法
无限次循环方式
| 12
 3
 4
 5
 6
 7
 8
 9
 10
 11
 
 | for(;;){
 无限循环
 break;
 }
 
 
 while(true){
 无限循环
 break;
 }
 
 | 
练习题:从键盘输入任意数量的数字,记录并输出正数个数和负数个数,遇到0则退出
| 12
 3
 4
 5
 6
 7
 8
 9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 
 | import java.util.Scanner;class ForWhile {
 public static void main(String[] args)
 {
 Scanner sc = new Scanner(System.in);
 int positiveNumber = 0;
 int negativeNumber = 0;
 for(;;){
 
 int number = sc.nextInt();
 if(number > 0){
 positiveNumber++;
 }else if(number < 0){
 negativeNumber++;
 }else{
 break;
 }
 }
 System.out.println("正数个数为" + positiveNumber);
 System.out.println("负数个数为" + negativeNumber);
 }
 }
 
 | 
嵌套循环
嵌套循环表示循环里面套循环,例如 For 循环里面嵌套 While 循环,While 循环里面嵌套 For 循环。
我们把外面的循环称为外层循环,吧里面的循环称之为内层循环。
外层循环循环 n 遍,内层循环循环 m 遍,则内层循环一共循环 n * m 遍。
代码演示
| 12
 3
 4
 5
 6
 7
 8
 9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
 33
 34
 35
 
 | class ForFor{public static void main(String[] args) {
 
 
 
 
 
 
 
 
 for(int i = 1; i <= 5; i++){
 for(int j = 1; j <= i; j++){
 System.out.print("*");
 }
 
 System.out.println();
 }
 
 
 
 
 
 
 
 
 
 for (int i = 1;i <= 5; i++){
 for (int j = 1;j <= 6 - i; j++){
 System.out.print("*");
 }
 
 System.out.println();
 }
 }
 }
 
 | 
使用嵌套循环输出菱形
| 12
 3
 4
 5
 6
 7
 8
 9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
 33
 34
 35
 36
 37
 38
 39
 40
 41
 42
 43
 
 | 
 
 
 
 
 
 
 
 
 
 
 
 
 class ForForTest {
 public static void main(String[] args) {
 
 for (int i = 1; i <= 5; i++){
 
 for (int j = 1; j <= 6-i; j++){
 System.out.print(" ");
 }
 
 for (int k = 1; k <= i; k++){
 System.out.print("* ");
 }
 System.out.println();
 }
 
 for(int i = 1; i <= 4; i++){
 
 for(int j = 1; j <= i; j++){
 System.out.print(" ");
 }
 
 for(int k = 1; k <= 5 - i; k++){
 System.out.print(" *");
 }
 System.out.println();
 }
 }
 }
 
 
 | 
输出九九乘法表
| 12
 3
 4
 5
 6
 7
 8
 9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 
 | 
 
 
 
 
 
 
 
 
 
 
 class JiuJiu {
 public static void main(String[] args) {
 for(int i = 1; i <= 9; i++){
 for(int j = 1; j <= i; j++){
 System.out.print(i + "*" + j + "=" + i * j + " ");
 }
 System.out.println();
 }
 }
 }
 
 | 
输出100以内所有的质数
质数:只能被自己和1整除的自然数
例如:7,7只能被自己和1整除,所以7就是一个质数。15:15可以被3和5整数,也可以被1和15整除,所以15不是一个质数
最小的质数是2
| 12
 3
 4
 5
 6
 7
 8
 9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 
 | 
 
 
 
 
 
 
 class ZhiShu {
 public static void main(String[] args){
 Boolean isFlag = true;
 for(int i = 2; i <= 100; i++){
 for(int j = 2; j <= i -1; j++){
 
 if( i % j == 0){
 isFlag = false;
 }
 }
 if(isFlag){
 System.out.println(i);
 }
 isFlag = true;
 }
 }
 }
 
 | 
输出质数问题的代码优化
| 12
 3
 4
 5
 6
 7
 8
 9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
 33
 34
 35
 
 | 
 
 
 
 
 
 
 
 
 
 
 class ZhiShu2 {
 public static void main(String[] args){
 long startTime = System.currentTimeMillis();
 int count = 0;
 Boolean isFlag = true;
 for(int i = 2; i <= 100000; i++){
 for(int j = 2; j < Math.sqrt(i); j++){
 if(i % j == 0){
 isFlag = false;
 break;
 }
 }
 if(isFlag){
 
 count++;
 }
 isFlag = true;
 }
 long endTime = System.currentTimeMillis();
 System.out.println("质数个数为" + (count));
 System.out.println("程序运行所用时间" + (endTime - startTime));
 }
 }
 
 | 
输出1000以内的所有完数
题目要求:一个数如果恰好等于这个数的因子之和,我们称这个数为一个完数。例如 6 = 1+2+3。因子:除去这个数本身的其他约数
break和continue关键字的区别
| 关键字 | 使用范围 | 相同点 | 不同点 | 
| break | switch case;循环结构 | 都可以在循环结构中使用,关键字后面不能跟代码 | 结束当前循环 | 
| continue | 循环结构 | 都可以在循环结构中使用,关键字后面不能跟代码 | 结束当次循环 | 
通过代码查看区别
break
| 12
 3
 4
 5
 6
 7
 
 | for(int i=1; i <= 10; i++){if(i % 4 == 0){
 break;
 
 }
 System.out.println(i);
 }
 
 | 
continue
| 12
 3
 4
 5
 6
 
 | for(int i = 1; i <= 10; i++){if(i % 4 == 0){
 continue;
 }
 System.out.println(i);
 }
 
 | 
带标签的break和continue使用
| 12
 3
 4
 5
 6
 7
 8
 9
 10
 11
 12
 13
 14
 15
 16
 
 | class LabelFor {public static void main(String[] args){
 
 label:for(int i=1;i<=4;i++){
 for(int j=1;j<=10;j++){
 if(j % 4 == 0){
 
 break label;
 }
 System.out.print(j);
 }
 System.out.println();
 System.out.print(i);
 }
 }
 }
 
 |