一.控制选择结构语句

  • if、if else
  • switch

(一).if语句

  • if语句又被称为分支语句、条件控制语句

1.if语句的语法结构:四种编写方式

  • if(布尔表达式){java语句}
  • if(布尔表达式){java语句}else{java语句}
  • if(布尔表达式){java语句}else if{java语句}
  • if(布尔表达式){java语句}else if{java语句}else{java语句}
  • 有两种带有else分支,这两种方是可以保证有分支执行。
  • 所以的控制语句都是可以嵌套使用的,代码格式要完整(也就是缩进)
  • if语句的分支中只有一条java语句的话,大括号可以省略,但是不推荐。

2.if语法实训案例1

  • 根据学生成绩判断等级
  • 要求:
  • 【90-100】A
  • 【80-90】B
  • 【60-80】C
  • 【0-60】D
  • 这里还有一种需要学习的方法:

3.if语句实训案例2

  • 如果是雨天,女士就带一把女士雨伞,男士就带一把男士雨伞,如果是晴天且温度超过30度,女士就带一把女士遮阳伞,男士就带一把男士遮阳伞。
package practice;

import java.util.Scanner;

public class practice03 {
    public static void main(String[] args) {
        System.out.println("说明1:1代表下雨天,0代表晴天");
        System.out.println("说明2:1代表男士,0代表女士");
        System.out.println("说明3:天气温度为数字");
        Scanner n = new Scanner(System.in);
        System.out.print("请输入性别:");
        int sex = n.nextInt();
        System.out.print("请输入当前天气的状况:");
        int weather = n.nextInt();
        if (weather == 1) {
//            System.out.println("下雨天");
            if (sex == 1) {
                System.out.println("带一把男士雨伞");
            } else if (sex == 0) {
                System.out.println("带一把女士雨伞");
            } else {
                System.out.println("您输入错误");
            }
        } else if (weather == 0) {
//            System.out.println("晴天");
            System.out.print("请输入天气温度:");
            double tem = n.nextInt();
            if (tem > 30) {
                if (sex == 1) {
                    System.out.println("带一把男士遮阳伞");
                } else if (sex == 0) {
                    System.out.println("带一把女士遮阳伞");
                } else {
                    System.out.println("您输入错误");
                }
            }
        } else {
            System.out.println("您输入的天气错误");
        }
    }
}
  • 运行的结果为:
  • java处理 控制字符 java语言之控制语句_System


4.接受用户键盘输入

  • system.out.println(); 负责向控制台输出【从内存到控制台】
  • 接受键盘输入,从“键盘”到“内存”
  • 步骤:先创建键盘扫描对象,在调用Scanner对象的next()方法开始接受用户键盘输入
import java.util.Scanner;

public class practice01 {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        //String str = scanner.next();
        int num = scanner.nextInt();
        System.out.println("结果是:" + (num + 6));
    }
}
/*
总结:
第一步:
Scanner scanner = new Scanner(System.in);
第二步:
String str = S.next();
或者
int num = scanner.nextInt();
 */
  • 输出的结果为:
  • java处理 控制字符 java语言之控制语句_算法_02


5.用户键盘输入实训案例

package practice;

import java.util.Scanner;

public class practice02 {
    public static void main(String[] args) {
        /*
        实训题:假设系统给定一个人的年龄根据年龄判断这个人处于哪个阶段
        【0-18】儿童
        【19-55】中年
        【56-100】老年
         */
        //接受键盘输入:年龄[输入时必须是数字]
        Scanner scanner = new Scanner(System.in);
        int age = scanner.nextInt();
        System.out.println("年龄为:" + age);
        //根据要求进行逻辑判断
        String str = "老年";
        if (age < 0 || age > 100) {
            str = "输入错误,请重新输入";
        } else if (age <= 55) {
            str = "中年";
        } else if (age <= 18) {
            str = "儿童";
        }
        System.out.println(str);
    }
}
  • 输出的结果为:
  • java处理 控制字符 java语言之控制语句_java_03


6.关于Switch语句

(1)介绍

  • 属于选择结构,也是分支语句
  • Switch(int或string类型的字面值或变量){case int 或String类型的字面值或变量}

(2)原理

  • 原理1:Switch后面小括号当中的“数据”和case后面的“数据”进行一一匹配,匹配成功的分支执行。按照自上而下的顺序依次匹配。
  • 原理2:匹配成功的分支执行,分支当中最后有“break”语句的话,整个Switch语句终止。
  • 原理3:匹配成功的分支执行,分支当中没有“break”语句的话,直接进入下一个分支执行(不进行匹配),这种现象称为case穿透现象
  • 原理4:所有分支都没有匹配成功,当有default的语句的话,会执行default分支当中的程序。

(3)注意的一些问题

  • Switch后面和case后面只能是int或string类型的数据,不能是其他类型。

  • 当然byte,short,char也可以直接写到Switch和case后面,因为它们可以进行自动转换为int类型的了

  • case可以合并

  • 注意一些报错的情况
  • java处理 控制字符 java语言之控制语句_算法_04

  • 解决编译报错的一些写法:
  • java处理 控制字符 java语言之控制语句_java_05

(4)实训案例一

  • 输入数字返回对应的星期值
  • 代码展示:
package practice;

import java.util.Scanner;

public class practice04 {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        System.out.print("请输入数字:");
        int num = scanner.nextInt();
        switch (num) {
            case 1:
                System.out.println("星期一");
            case 2:
                System.out.println("星期二");
            case 3:
                System.out.println("星期三");
                break;
            case 4:
                System.out.println("星期四");
                break;
            case 5:
                System.out.println("星期五");
                break;
            case 6:
                System.out.println("星期六");
                break;
            case 7:
                System.out.println("星期日");
                break;
            default:
                System.out.println("您输入的数字不对,请重新输入");
        }
    }
}
  • 输出的结果展示:
  • java处理 控制字符 java语言之控制语句_System_06


  • 第二种写法
  • java处理 控制字符 java语言之控制语句_System_07


(5)实训案例二

  • 实现计算机中的 + 、- 、* 、/ 运算
  • 代码展示:
package practice;

import java.util.Scanner;

public class practice05 {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        System.out.println("简单的计算系统");
        System.out.print("请输入第一个数字:");
        int num1 = scanner.nextInt();
        System.out.print("请输入运算符号:");
        String operator = scanner.next();
        System.out.print("请输入第二个数字:");
        int num2 = scanner.nextInt();
        int result = 0;
        switch (operator) {
            case "+":
                result = num1 + num2;
                break;
            case "-":
                result = num1 - num2;
                break;
            case "*":
                result = num1 * num2;
                break;
            case "/":
                result = num1 / num2;
                break;
            case "%":
                result = num1 % num2;
                break;
            default:
                System.out.println("输入错误,请重新输入");
        }
        System.out.println("运算结果为:" + num1 + operator + num2 + " = " + result);
    }
}
  • 输出结果展示:
  • java处理 控制字符 java语言之控制语句_java处理 控制字符_08


(6)实训案例三

  • 假设系统给定学生成绩,请判断该考生的成绩等级:
    【0-59】不及格
    【60-79】及格
    【80-100】优秀
  • 代码展示:
package practice;


public class practice06 {
    public static void main(String[] args) {
        //double score = 96.5;
        //double score = 76.5;
        double score = 16.5;

        int grade = (int)(score / 10);
        switch (grade) {
            case 9 : case 10:
                System.out.println("优秀");
                break;
            case 6 : case 7:
                System.out.println("及格");
                break;
            case 4: case 5:
                System.out.println("不及格");
                break;
            case 2: case 3:
                System.out.println("不及格");
                break;
            case 0: case 1:
                System.out.println("不及格");
                break;
            default:
                System.out.println("输入不正确,请重新输入!");
        }
    }
}
  • 注:这里的case 0: case 1:这个数字只能是相近的两个数字,多了就不行

  • 输出结果展示:
  • java处理 控制字符 java语言之控制语句_算法_09

二.控制循环结构语句

(一)、for循环

1.语法结构:

for(初始化表达式;布尔表达式;更新表达式){是需要重复执行的代码片段}

2.执行原理:

  • 初始化表达式、布尔表达式、更新表达式都不是必须的【但是两个分好是必须的】
  • 初始化表达式最先执行,并且在整个for循环中只执行一次
  • 布尔表达式必须是true、false,不能是其它值。

3.实训案例

(1)实训案例一

(二)、 while

(三)、do …while

三.改变控制语句顺序

1、break

2、continue