Java基础语法 day03-控制语句

前两天比较基础,就不补了,从day03开始打卡

1.

if-else if-else:

/*
if,if-elif-else控制语句的结构:
if(条件){
执行语句
}else if(条件){
执行语句}else{
执行语句}
 */

import java.util.Scanner;

public class IF {
    public static void main(String[] args){
        test();
    }
    public static void test(){
        Scanner sc = new Scanner(System.in);
        System.out.println("Enter a number: ");
        int height = sc.nextInt();
        if(height <= 160){
            System.out.println("你真矮");
        }else if (height > 160 & height <= 170){
            System.out.println("你一般矮");
        }else{
            System.out.println("你有点高");
        }
    }
}

tips:注意else if 和 else必须紧跟着上一个花括号后面,这是龟腚。

2.Switch

switch更适合单个值的比较,if适合范围。

在执行过程中,先计算出表达式的值,再拿去和case中的值比较,比较为真,则执行那个case下的语句。

注意,必须加break,否则执行完那个case的语句后,还会向后执行,称为穿透现象。

/*
switch 语句结构:
switch(表达式){
    case值1:
        执行语句;
        break;
    case值2:
        执行语句;
        break;
    default:
        执行语句;
}
default相当于是除了case1和case2的其他值,default这儿不用break了,因为以经到底了
 */
import java.util.Scanner;

public class Switch {
    public static void main(String[] args) {
        test();//需求,根据性别不同,推荐不同的电视剧
    }
    public static void test() {
        Scanner sc = new Scanner(System.in);
        System.out.println("输入你的性别");
        String gender = sc.next();
        switch (gender)
        {
            case "男" :
                System.out.println("亮剑");
                break;
            case "女" :
                System.out.println("致命女人");
                break;
            default:
                System.out.println("请正确输入你的性别");
        }

    }
}

当然,穿透现象不一定是坏处,它有时可以简化代码量。没有break的地方,就会一直往下寻找执行语句。

eg:需求:周一到周五:输出“好好读书”,周六周日,输出“无畏契约”。代码如下。

由于周一到周五的case没有break,而我故意不在周一到周五写执行语句,所以会一直向下寻找执行语句,直到周五,输出”好好读书“。正因为周一到周五输出的内容都是一样的,因此利用穿透现象,可以只写一行好好读书。

    public static void show() {
        Scanner sc = new Scanner(System.in);
        System.out.println("输入今天是星期几");
        String day = sc.next();
        switch (day){
            case  "星期一" :
            case  "星期二" :
            case  "星期三" :
            case  "星期四" :
            case  "星期五" :
                System.out.println("好好读书");
                break;
            default:
                System.out.println("无畏契约");
        }
    }

3.for循环

for(初始化语句;循环条件;迭代语句){

重复执行的代码

}

eg:

public class For {
    public static void main(String[] args) {
        test(10);
    }
    public static void test(int a) {
        for (int i = 0; i < a; i += 2){
            System.out.println(i);
        }
    }
}

感觉比python的range(a,b,k)好用,i+=2相当于控制步长为2,打印10以内的偶数。

而且可以很好的控制区间的开闭,i < a,就是python的写法,左闭右开;i <= a,就是左闭右闭。

4.while 循环

/*
while 循环的结构
while(循环条件){
    循环体语句(被重复执行的代码);
    迭代语句
}
 */

public class While {
    public static void main(String[] args) {
        test();// 5 4 3 2 1 0
    }
    public static void test() {
        int i = 5;
        while(i >=0){
            System.out.println(i);
            i --;
        }
    }
}

tips:跟for循环不同,while循环里的 i 必须在while外部定义好了,再拿来循环(全局变量 i)。

而for循环里的 i 是在for 循环里定义,并且作用域仅在 for 循环里。

5.do-while

可以理解为while循环的变体,他是一上来就执行循环体语句和迭代语句一遍,再去判断是否满足while的循环条件、、

/*
do-while 结构:
初始化语句
do{
循环体语句;
迭代语句;
}while(循环条件);
 */

public class DoWhile {
    public static void main(String[] args) {
        test();//5
    }
    public static void test() {
        int i = 5;
        do{
            System.out.println(i);
            i --;
        }while(false);

    }
}

tips:

while false如果在最前面,是根本不会往下执行的。但是用了do结构, 先print出来,再进入while判断条件,发现为false,然后结束。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值