Java基础第二弹(选择)

boolean数据类型

boolean数据类型声明一个具有值true或者false的变量。

选择语句

单分支if语句、双分支if-else语句、嵌套if语句、多分支if-else语句、switch语句和条件表达式。

两个浮点数值的相等测试

浮点数具有有限的计算精度;涉及浮点数的计算可能引入取整错误。因此,两个浮点数值的相等测试并不可靠。比如,你期望代码显示true,但是会让人意外的显示false:

double x = 1.0 - 0.1 - 0.1 - 0.1 - 0.1 - 0.1;
System.out.println(x == 0.5);

这里,x并不是精确等于0.5,而是0.5000000000000001。虽然不能依赖于两个浮点数值的相等测试,但是可以通过测试两个数的差距小于某个阈值,来比较它们是否已经足够接近。也就是,对于一个非常小的值e,如果|x - y|<e,那么x和y非常接近。e是一个读为"epsilon"的希腊字母,常用于表示一个非常小的值。通常,将e设为10^-14来比较两个double类型的值,而设为10^-7来比较两个float类型的值。例如,下面的代码:

final double EPSILON  = 1E-14;
double x = 1.0 - 0.1 - 0.1 - 0.1 - 0.1 - 0.1;
if(Math.abs(x - 0.5) < EPSILON)
    System.out.println(x + " is approximately 0.5");

将显示0.5000000000000001近似等于0.5。

Math.abs( a )方法可以用于返回a的绝对值。

产生随机数

  • 产生随机数的方法有很多种。现在使用System.currentTimeMillis( )%10产生第一个整数,使用System.currentTimeMillis( )*7%10产生第二个整数。
  • 可以使用Math.random( )来获得一个0.0到1.0之间的随机double值,不包括1.0。这样,(int)(Math.random( )*10)会返回一个随机的一位整数(即0到9之间的数)。

逻辑操作符

                                                                                            布尔操作符

操作符 名称 说明
逻辑非
&& 逻辑与
| | 逻辑或
^ 异或 逻辑异或

判断闰年

如果某年可以被4整除而不能被100整除,或者可以被400整除,那么这一年就是闰年。

isLeapYear = (year % 4 == 0 && year % 100 != 0) || (year % 400 == 0);

switch语句

switch(switch 表达式){
    case 值1: 语句(组)1;
                break;
    case 值2: 语句(组)2;
                break;
    ...
    case 值N: 语句(组)N;
                break;
    default: 默认情况下执行的语句(组)
}

switch 语句遵从下述规则:

  1. 默认情况(default)是可选的,当没有一个给出的case与switch表达式匹配时,用来执行该操作。
  2. 关键字break是可选的。break语句会立即终止switch语句。

警告:不要忘记在需要的时候使用break语句。一旦匹配其中一个case,就从匹配的case处开始执行,直到遇到break语句或到达switch语句的结束。这种现象称为落空行为(fall-through behavior)。例如,下列代码为第一天到第五天显示Weekdays,第0和第6天显示Weekends。

switch (day){
    case1:
    case2:
    case3:
    case4:
    case5: System.out.println("Weekday");break;
    case0:
    case6: System.out.println("Weekend");
}

为了避免程序设计错误,提高代码的可维护性,如果故意省略break,在case子句后添加注释是一个好的做法。

条件表达式

if(x > 0)
    y = 1;
else
    y = -1;

在这个例子中,还可以选择使用如下的条件表达式,也能达到同样的效果。

y = (x > 0) ? 1 : -1;

条件表达式是一种完全不同的风格,在语句中没有明确出现if。该语法如下所示:

boolean-expression ? expression1 : expression2; 

//(布尔表达式 ? 表达式1:表达式2)

如果布尔表达式的值为true,则条件表达式的结果为表达式expression1;否则,结果为表达式expression2。

注意:符号?和:在条件表达式中同时出现。它们构成一种条件操作符,因为操作数有三个,所以称为三元操作符。它是Java中唯一的三元操作符。

调试

  • 一次执行一条语句
  • 跟踪进入或者一步运行过一个方法
  • 设置断点
  • 显示变量
  • 显示调用堆栈
  • 修改变量
发布了14 篇原创文章 · 获赞 2 · 访问量 437

猜你喜欢

转载自blog.csdn.net/weixin_43876357/article/details/100175475