判断
2020-03-01 本文已影响0人
lemon_crystal
1.关系运算
比较两个值的关系
== != > >= <= <
关系运算的结果是布尔值,true或false
优先级在算术运算之后,在赋值运算之前
2.数值类型比较
整型与浮点型之间可以进行比较
需要注意某些情况下,对运算结果的比较可能会出现错误,如
double a = 1.0;
double b ;
b = 0.1 + 0.1 + 0.1 + 0.1 + 0.1 + 0.1 + 0.1 + 0.1 + 0.1 + 0.1 ;
System.out.println(a == b);
false
原因是十进制数字在计算机中首先转化为二进制,之后对二进制进行运算,最后将结果转化为十进制再输出。但是十进制数与二进制数并非一一对应,所以小数点后很多位处可能会出现误差,称为不确定尾数,因此在对浮点数计算结果进行比较是出现了false。
所以此时不对两个浮点数进行直接比较,而是比较二者之差的绝对值是否小于某一极小的数,如果小于,那么认为两个浮点数相等,如果不小于,则不认为其相等。如
double a = 1.0;
double b ;
boolean c ;
b = 0.1 + 0.1 + 0.1 + 0.1 + 0.1 + 0.1 + 0.1 + 0.1 + 0.1 + 0.1 ;
System.out.println(a == b);
c = Math.abs(a - b) < 0.00001;
System.out.println(c);
false
true
3.if-else
if(条件)
{
操作
}
else if()
{
操作
}
else()
{
操作
}
可以根据需要添加else if模块的数量,也可以只使用if模块
4.流程图
在涉及到循环结构,分支结构时,应当根据需要绘制流程图,方便理解算法
image.png
5.嵌套级联
需要注意在使用if语句的嵌套级联时,else对应的是离它最近的上一个if,如
int a;
int b;
int c;
int Max;
Scanner in = new Scanner(System.in);
a = in.nextInt();
b = in.nextInt();
c = in.nextInt();
if(a <= b)
{
if(b <= c)
{
Max = c;
}
else
{
Max = b;
}
}
else
{
Max = a;
}
System.out.println(Max);
为了防止出现错误,使用if时一定要使用大括号,将结构区分清楚
6.switch case
switch(表达式)
{
case 值:
操作
case 值:
操作
}
根据表达式的值进入对应的分支结构,如
int a = 1;
switch(a)
{
case 1:
System.out.println("a = 1");
break;
case 2:
System.out.println("a = 2");
break;
}
a = 1
7.break
需要注意的是当进入某一case后,会向下执行剩余的所有case,如果要求仅执行对应的case,那么需要在每一case最后增加break