循环+if判断(每日分享学习心得和知识点)

编写一个程序,实现对于用户输入的月份显示出当前的月份的天数,分别用if-else和switch-case来实现(其中闰年的判断方式是可以被4整除但不能被100整除或者可以被400整除)

	int month =2;
        int year = 2020;
        //使用if-else判断当月的天数
            if (month == 4 || month == 6 || month == 9 || month == 11)
                System.out.println("这个月份有30天!");
            if (month == 2)
                if (year%4==0&&year%100!=0||year%400==0)
                    System.out.println("这个月份有29天!");
                else
                    System.out.println("这个月份有28天!");
            else
                System.out.println("这个月份有31天!");
        //使用switch-case获取当前月份的天数
        switch (month){
            case 1: case 3: case 5: case 7: case 8: case 10: case 12:
                System.out.println("这个月份有31天!");break;
            case 4: case 6: case 9: case 11:
                System.out.println("这个月份有30天!");break;
            case 2:
                if (year%4==0&&year%100!=0||year%400==0) {
                    System.out.println("这个月份有29天!");
                    break;
                }else
                    System.out.println("这个月份有28天!");break;
            default:
                System.out.println("无效日期!");break;
        }
//心得:用if或者else,如果方法体内就只有一行代码可以省略其中大括号。并且用到switch-case时,如果有多个case的判断值其对应的结果相同可以使用(case 1:case 2:)这种简写方式来简化编程。并且后面的break如果没有的话,程序就会在当前的语句下接着执行下一个语句,直到遇到break退出循环为止。

总结一下a++和++a的区别:

采用的是就近原则,假如b=a++,此时a与等号离得最近,所以a的数值先赋值给b,之后a在实现自增,等到的是b=a,a=a+1;
b=++a,此时+号离等于号最近所以此时b的结果是先获得a=a+1之后的数值,之后a再实现自增,所以计算之后,b=a+1;b=a+1

总结一下a++为什么比a+1:

a=a+1,a现在堆内存中开辟空间,此时要实现a的值与1相加,此时1
也要有一个暂时的变量来接收,最后再与a相加
a++则是至始至终都在自己的堆内存中实现自增,没有产生中间的变量来接收1,所以a++比a=a+1效率要高一点。

总结一下char和int的关系:

charint之间可以实现自动转换,即char a ='A',其中的a可以看成是一个int的数值,而int的数值也可以看成是char,其对应的转化关系都是参照ASCII表,所以可以利用这一点实现简单的打印出来a-z和A-Z。
//输出全部小写字母
        System.out.println("\n");
        for (char a= 'a';a<='z';a++){
            System.out.print(a);
        }
        System.out.println("\n");
        //输出全部的大写字母
        for (char b= 'A';b<='Z';b++){	
            System.out.print(b);
        }

总结一下int转化为byte:

int的数值超出byte的范围(-128-127之间)时,会通过"循环溢出"的方法来计算出byte的数值,具体方法就是:
例如:
int i =129; byte b = (byte)i,此时b的数值为-127,原理就是当int为正整数时,超过127,就接着-128继续进行循环,知道找到对应位置的数值,同理,如果int的数值超过-128的时候,此时byte的数值就是接着-128之后的+127开始进行循环,直到找到对应位置的数值。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值