JAVA基础语句的编写规范

                                                                       #JAVA基础语句的编写规范

1 使用break跳出switch语句

  1. 如果没有break语句则,switch会从满足条件的地方开始执行,直到switch结构结束 。

    下面代码执行的结果是?
     switch (3) {
       default:
            System.out.print(3);
       case 0:
            System.out.print(0);
            break;
       case 1:
            System.out.print(1);
      case 2:
            System.out.print(2);
          break;
}                                                        

输出的结果是30,因为当3不与case后的表达式相同时,执行default语句并向下执行直到遇到break跳出switch语句块。

2. switch语句要有default分支,除非switch的条件变量是枚举类型/规则 条件变量是枚举类型(enum)的switch.
1若不包含default 则当case后面表达式与参数不符合时,则陷入死循环,程序不完整。
2若是enum类型则包含了所存在的情况可不写default。
*

import java.util.Scanner;
/**
 * 验证switch的default语句
 * 
 * @author Mr.wu v1.0
 */
public class SwitchDefault {
	public static void main(String[] args) {
		// // SwitchDefault对象实例化
        SwitchDefault switchDefault =new SwitchDefault();
        switchDefault.switchMethod(1);
        Scanner input=new Scanner(System.in);
        int number = input.nextInt();
        switchDefault.switchMethod(number);
	}
	/**
	 * switch包含default语句的方法
	 * 
	 * @param number
	 *            分支判断用的数值
	 */
	private void switchMethod(int number) {
		switch (number) {
		case 1:
			System.out.println("This is branch 1!");
			break;
		case 2:
			System.out.println("This is branch 2!");
			break;
        default :
        System.out.println("This is default branch!");
		}
	}
}

与default类似原理的还有if- else if 多分支语句,当使用if -else if 语句时,最后包含一个else语句分支(防止出现开发人员忽略的分支)

if(表达式1{
   语句
}else if(表达式2{
   语句
}else if(表达式3{
   语句
}else{
   语句
}

3 不能用浮点类型数作为循环变量的原因
浮点类型的精度会影响循环
例:

public class Text {

	public static void main(String[] args) {
        // TODO:循环变量的类型需要修改
        for (float f = (float)2000000000; f <2000000050; f++) {
            System.out.println(f);
        }

         //TODO:判断条件变量类型需要修改
        if ((float)2000000000 == (float)2000000050) {
            System.out.println("surprise! They are equal.");
        }
    }

}

输出的结果为

在这里插入图片描述
其中(float)2000000000 == (float)2000000050);
因为计算机用二进制来存储数据,并且遵循IEEE-754的标准(约定单精度位数长度为23)
又因为2000000000 的尾数为110111001101011001010000000000,自动省略后七位变为
11011100110101100101000;
同理2000000050的 尾数110111001101011001010000110010,也自动省略后七位变为
11011100110101100101000;

所以 (float)2000000000 == (float)2000000050);

5类型转换要明确
在这里插入图片描述
当在进行运算时,会涉及到不同类型的转换会造成数值的误差
例子

 public static void main(String[] args) {    
         int  num=12346;
         double  n=num/5;
         System.out.println(n);
         int  num2=123456;
         double n2=(double)num/5;
         System.out.println(n2);//通过n1,n2比较发现精度缺失
         long  num3=923456789987654328L;
         float n3=num3*5;
         System.out.println(n3);
         double n4=(double)num3*5;
         System.out.println(n4);//n3,n4 浮点的转换 造成了误差变大
	    }

学习心得来自华为Classroom
建议通过这篇文章理解类型转换
链接:https://blog.csdn.net/qq_55514068/article/details/114323914

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值