文章目录
- 前言
- 1.逻辑控制语句的分类
- 1.顺序结构
- 2.分支结构
- 2.1.if结构
- 2.1.1.if...else语句
- 2.2.2.if ... else if... else语句
 
- 2.2.switch语句
 
- 3.循环结构
- 3.1.while
- 3.2.break
- 3.3.continue
- 3.4.for循环
- 3.5.do while循环
 
- 4.输入输出
- 4.1.输入到控制台
- 4.2.从键盘输入
 
前言
前两篇文章,我们初步了解了Java语言,今天我们写一篇关于逻辑控制的文章
1.逻辑控制语句的分类
- 1.顺序结构
- 2.分支结构
- 3.循环结构
1.顺序结构
顺序结构比较简单,按照代码书写的顺序一行一行执行。
 public static void main(String[] args) {
        //1.顺序结构
        System.out.println("aaa");
        System.out.println("bbb");
        System.out.println("ccc");
    }
2.分支结构
2.1.if结构
语法结构:
if(布尔表达式){
语句
}
 public static void main(String[] args) {
        //1.if(布尔表达式)
        int score=90;
        if(score>=90){
            System.out.println("Your score is great");
        }
    }
注意:判断条件一定是布尔表达式,不能是if(1)…,
		if(1){
            System.out.println("Your score is great");
        }

2.1.1.if…else语句
语法:
if(布尔表达式){
语句1
}else{
语句2
}
判断一个数是奇数还是偶数
		int n=2;
        if(n%2==1){
            System.out.println("n is an odd number");
        }else{
            System.out.println("n is an even number");
        }
2.2.2.if … else if… else语句
判断一个学生成绩(A,B,C,D,E)
 public static void main(String[] args) {
        int score=88;
        if(score >= 90){
            System.out.println("A");
        }else if(score < 90&&score >= 80){
            System.out.println("B");
        } else if (score >= 70 && score < 80) {
            System.out.println("C");
        } else if (score >= 60 && score < 70) {
            System.out.println("D");
        }else {
            System.out.println("E");
        }
    }
注意:悬垂 else 问题
 		int x = 10;
        int y = 10;
        if (x == 10)
            if (y == 10)
                System.out.println("aaa");
            else
                System.out.println("bbb");
        
建议:不要这样写,最好加上大括号。
2.2.switch语句
语法:switch(表达式){
case 常量值1:{
语句1;
[break;]
}
case 常量值2:{
语句2;
[break;]
}
…
default:{
内容都不满足时执行语句;
[break;]
}
}
		int a=10;
        switch (a)
        {
            //case之后必须是常量值
            case 10:
                System.out.println("a == 10");
                break;
            default:
                System.out.println("a!=10");
        }
判断是星期几
byte day=5;
        switch (day)
        {
            case 1:
                System.out.println("星期二");
                break;
            case 2:
                System.out.println("星期二");
                break;
            case 3:
                System.out.println("星期三");
            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("输入错误");
                break;
        }
注意:1.switch的括号内只能是以下类型的表达式
 基本类型:byte、char、short、int,注意不能是long类型
 引用类型:String常量串、枚举类型
 2.switch不要使用嵌套
public static void main(String[] args) {
        int x = 1;
        int y = 1;
        switch(x) {
            case 1:
                switch (y) {
                    case 1:
                        System.out.println("hehe");
                        break;
                    case 2:
                        System.out.println("haha");
                        break;
                }
        }
    }
3.循环结构
3.1.while
语法:
while(布尔表达式){
语句1;
}
计算1—100的和
public static void main(String[] args) {
        //1.计算1--100的和
        int n=1;
        int ret=0;
        while (n<=100){
            ret+=n;
            n++;
        }
        System.out.println(ret);
    }
计算5的阶乘
		int n=1;
        int ret=1;
        while (n<=5){
            ret*=n;
            n++;
        }
        System.out.println(ret);
计算1!+2!+3!+4!+5!的和
		//计算1!+2!+3!+4!+5!的和
        int n=1;
        int sum=0;
        //外部负责相加
        while(n<=5){
            int tmp=1;
            int ret=1;
            //里面负责阶乘
            while (tmp<=n){
                ret*=tmp;
                tmp++;
            }
            sum+=ret;
            n++;
        }
        System.out.println(sum);
3.2.break
找到 100 - 200 中第一个 3 的倍数
 break 的功能是让循环提前结束.
        //找到 100 - 200 中第一个 3 的倍数
        int n=100;
        while (n<=200){
            if(n%3==0){
                System.out.println(n);
                break;
            }
            n++;
        }
    }
3.3.continue
continue 的功能是跳过这次循环, 立即进入下次循环
 public static void main(String[] args) {
        //continue 的功能是跳过这次循环, 立即进入下次循环
        int i=1;
        while(i<=10){
            if(i==7) {
               continue;
            }
            //当i==7时,下面的代码就不执行了,进行到了死循环
            System.out.println(i);
            i++;
        }
    }
    求出 1-100之间 所有既能被3  也能被5 整除的数字
     要使用break 或者continue 做
public static void main(String[] args) {
        //求出 1-100之间 所有既能被3  也能被5 整除的数字
        // 要使用break 或者continue 做
        int i=0;
        while (i<=100){
            if(i%15!=0){
                i++;
                continue;
            }
            System.out.println(i+" ");
            i++;
        }
    }
3.4.for循环
语法:
for(表达式①;布尔表达式②;表达式③){
表达式④;
}
表达式1: 用于初始化循环变量初始值设置,在循环最开始时执行,且只执行一次
表达式2: 循环条件,满则循环继续,否则循环结束
表达式3: 循环变量更新方式
计算5的阶乘
 public static void main(String[] args) {
        int ret=1;
        for (int i=1;i<=5;i++){
            ret*=i;
        }
        System.out.println(ret);
    }
计算1!+2!+3!+4!+5!的和
		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);
3.5.do while循环
语法:
do{
循环语句;
}while(循环条件);
打印1—10
	int n=1;
        do {
            System.out.println(n);
            n++;
        }while (n<=10);
4.输入输出
4.1.输入到控制台
语法:System.out.println(msg); // 输出一个字符串, 带换行
System.out.print(msg); // 输出一个字符串, 不带换行
System.out.printf(format, msg); // 格式化输出
println 输出的内容自带 \n, print 不带 \n
 printf 的格式化输出方式和 C 语言的 printf 是基本一致的.
4.2.从键盘输入
import java.util.Scanner;//导入包
public static void main(String[] args) {
        Scanner sc=new Scanner(System.in);
        System.out.println("请输入你的姓名:");
        String name = sc.nextLine();
        System.out.println("请输入你的年龄:");
        int age = sc.nextInt();
        System.out.println("请输入你的工资:");
        float salary = sc.nextFloat();
        System.out.println("你的信息如下:");
        System.out.println("姓名: "+name+"\n"+"年龄:"+age+"\n"+"工资:"+salary);
        sc.close(); // 注意, 要记得调用关闭方法
        }
完



















