java中if与switch-case语句的使用及一些注意事项

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,则相等。否则不相等。




你可能感兴趣的:(java中if与switch-case语句的使用及一些注意事项)