20171217java基础学习

20171216 Java基础の控制流程
这一个知识点分为:
·条件判断
·循环语句
下面将围绕这两点展开叙述。
1)if——条件判断。
Ⅰ.语句形式:if(表达式1){表达式2;}。即,如果表达式1的值是true,就执行表达式2。
代码示例如下:

public class HelloWorld {
    public static void main(String[] args) {
        boolean b = true;
        if(b){//如果成立就打印yes
            System.out.println("yes");
        }
    }
}

Ⅱ.当表达式2含有多个表达式,需要用{}将表达式2括起来,代码如下:

public class HelloWorld {
    public static void main(String[] args) {
        boolean b = false;

        if(b){//如果有多个表达式,必须用大括弧包括起来
            System.out.println("yes1");
            System.out.println("yes2");
            System.out.println("yes3");
        }

        if(b)//否则表达式2 3 无论b是否为true都会执行
            System.out.println("yes1");
            System.out.println("yes2");
            System.out.println("yes3");

        if(b){//如果只有一个表达式可以不用写括弧,看上去会简约一些
            System.out.println("yes1");
        }

        if(b)
            System.out.println("yes1");
    }
}

Ⅲ.NB[注意]——if使用过程中可能遇到的坑:if后面有一个分号「;」 而分号也是一个完整的表
达式。代码如下:

public class HelloWorld {
    public static void main(String[] args) {
        boolean b = false; 
        if (b);
            System.out.println("yes");
    }
}

上述代码在第5行,if后面有一个分号; 而分号也是一个完整的表达式。
即,如果b为true,会执行这个分号,然后打印yes;如果b为false,不会执行这个分号,然后打印yes,这
样,看上去无论如何都会打印yes。
Ⅳ.if else语句形式:if(表达式1){表达式2;}else{表达式3;}。代码示例如下:

public class HelloWorld {
    public static void main(String[] args) {
        boolean b = false;  
        if (b)
            System.out.println("yes");
        else
            System.out.println("no");
    }
}   

Ⅵ.else if:多条件判断。代码示例如下:

public class HelloWorld {
    public static void main(String[] args) {

        //如果只使用 if,会执行4次判断
        int i = 2;
        if (i==1)
            System.out.println(1);
        if (i==2)
            System.out.println(2);
        if (i==3)
            System.out.println(3);
        if (i==4)
            System.out.println(4);

        //如果使用else if, 一旦在18行,判断成立, 20行和22行的判断就不会执行了,节约了运算资源
        if (i==1)
            System.out.println(1);
        else if (i==2)
            System.out.println(2);
        else if (i==3)
            System.out.println(3);
        else if (i==4)
                System.out.println(4); 
    }
}

Ⅶ.习题训练:
判断是否为瑞年:
闰年判断标准(满足以下任何一个):
1. 如果能够被4整除,但是不能被100整除
2. 能够被400整除
代码如下:

import java.util.Scanner;
public class Lianxi {
    public static void main(String[] args) {
        Scanner x=new Scanner(System.in);
        System.out.println("请输入要判断的年份:");
        int a=x.nextInt();
        if((a%4== 0 && a%100!=0)||a%400==0){
            System.out.println(a+"是闰年"); 
        }
        else
        System.out.println(a+"不是闰年");
    }
}

健康值计算:BMI=体重(kg) / (身高*身高),BMI在[18.5,24)区间属于正常。
2)switch:swich 语句相当于 if else的另一种表达方式。
语法形式为:

switch(表达式/变量){
    case 1:表达式1break;
    case 2:表达式2break;
    case 3:表达式3break;
    ……
    default:表达式n;
}

补充:
1.switch后的变量可以使用byte,short,int,char,String,enum[枚举类型,属于基本类型]。[这些都为整数类型]。
2.String在Java1.7之前是不支持的, Java从1.7开始支持switch用String的,编译后是把String转化为
hash值,其实还是整数。
3.枚举类型介绍:
·枚举enum是一种特殊的类(还是类),使用枚举可以很方便的定义常量。
比如设计一个枚举类型季节,里面有4种常量。代码如下:

public enum Season {
    SPRING,SUMMER,AUTUMN,WINTER
}

一个常用的场合就是switch语句中,使用枚举来进行判断。全局代码如下:

public enum Season {
    SPRING,SUMMER,AUTUMN,WINTER;//因为是常量,所以一般都是全大写
    }

public class HelloWorld {
    public static void main(String[] args) {
        Season season = Season.SPRING;
        //是对枚举变量season赋值,即定义了一个枚举变量season的值为SPRING 
        switch (season) {
            case SPRING:
                System.out.println("春天");
                break;
            case SUMMER:
                System.out.println("夏天");
                break;
            case AUTUMN:
                System.out.println("秋天");
                break;
            case WINTER:
                System.out.println("冬天");
                break;
        }   
    }
}

·使用枚举的好处:假设在使用switch的时候,不是使用枚举,而是使用int,而int的取值范围就不只是1-4,有可能取一个超出1-4之间的值,这样判断结果就是是而非了。(因为只有4个季节)但是使用枚举,就能把范围死死的限定在这四个当中SPRING,SUMMER,AUTUMN,WINTER,而不会出现奇怪的第5季
·遍历枚举:借助增强型for循环,可以很方便的遍历一个枚举都有哪些常量。代码如下:

public class HelloWorld {
    public static void main(String[] args) {
        for (Season s : Season.values()) {
            //values()是enum中的方法,枚举名.values()这个方法会返回给一个装着枚举元素的数组
            System.out.println(s);
        }
    }
}

for (Season s : Season.values())这段代码⇔

Season[] s = Season.values();//枚举名.values()这个方法会返回给一个装着枚举元素的数组
for (int i = 0; i < s.length; i++) {
    System.out.println(s[i]);
}

[p.s.附加]增强型for循环:增强型for循环在遍历一个数组的时候会更加快捷,增强型for循环只能用来取值,却不能用来修改数组里的值。代码如下:

public static void main(String[] args) {
    int[] values = new int[]{18,62,68,82,65,9};
    int max = values[0];
    for (int each : values) {
        System.out.println(each);//读取数组中的值
        max = (max > each) ? max :( max = each);//找出数组中的最大值
    }
    System.out.println("最大是"+max);
}

【*重点】:在同一个包里的public类,可以互相使用,不用执行import操作。

【封笔于20171217】此后,不再进行知识点转移,这就要求自己及时总结知识点以及管理、复习相应代码。
原因:觉得知识点都在相应的网站上,转移的同时比较浪费时间。
建议之后在记事本上记载知识点的来源、总结知识框架[用自己的话来归纳]附加相应的代码、知识难点、不懂的地方。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值