1.if语句的嵌套
import java.util.Scanner;
public class Text1 {
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
Scanner in = new Scanner(System.in);
int a =in.nextInt();
int b =in.nextInt();
int c =in.nextInt();
int max;
if(a>b){
if(a>c)
max=a;
else
max=c;
}
else{
if(b>c)
max=b;
else
max=c;
}
System.out.println(max);
}
}
上述代码是输出三个数中的最大数,这里我们应该注意的是else只与最近的if匹配。
2.级联的if-else语句
import java.util.Scanner;
public class Text2 {
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
double x = in.nextDouble();
double f;
if(x<0){
f=-1;//System.out.println("-1");
}else if(x==0){
f=0;//System.out.println("0");
}else{
f=2*x;//System.out.println(2*x);
}
System.out.println(f);
}
}
上述代码采用了单一出口的原则,目的是为了后期代码的维护增加了代码的可扩展性。
3.switch-case语句
import java.util.Scanner;
public class Text3 {
public static void main(String[] args) {
Scanner in =new Scanner(System.in);
int type = in.nextInt();
switch(type){
case 1:
case 2:System.out.println("这是2");break;
case 3:System.out.println("这是3");break;
case 4:System.out.println("这是4");break;
default:System.out.println("您的输入有误!");break;
}
}
}
上述代码中type是控制表达式,控制表达式的结果必须是整数型。switch语句执行时根据控制表达式的结果寻找匹配的case,并执行后面的语句,如果没有break,将会顺序执行下一个case语句,一直到break为止或switch语句结束。所以break在switch语句中是很关键的。如果找不到,则执行default内的语句。如果没有default,那就什么都不做。
下面补充一些关于java关系运算的一些知识:
在java中关系运算的结果只有true和false
所有关系运算符的优先级都会低于算术运算符,但比赋值运算的高
在关系运算符中,==和!=的优先级比其他的低,而连续的关系运算是从左到右进行的
如何判断两个double类型的变量是否相等?
double a=1.0;
double b=0.2+0.2+0.2+0.2+0.2;
system.out.println(a==b);
这样直接用==来判断是不行的,答案肯定是false。
判断两个double类型的变量是否相等,我们应该通过Math.abs(a-b)<1e-6来判断,如果为true,则相等。否则不相等。