else if循环为什么进不去(else if 这里)

package day0;

import java.util.Scanner;

public class day1 {
	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);
		System.out.println("请输入时间");
		Double h = sc.nextDouble();
		System.out.println("请输入距离");
		Double g = sc.nextDouble();
		if (h >= 6.00 && h <= 21.00) {
			if (g <= 2) {
				System.out.println("本次打车费用7元");
			}
			if (g > 2) {
				double g1 = (g - 2) * 1.5 + 1 + 6;
				System.out.println("本次打车费用" + g1 + "元");
			} else if (h <= 5.00 | h >= 22.00) {
				if (g <= 2) {
					System.out.println("本次打车费用7元");
				}if (g > 2) {
					double g1 = (g - 2) * 1.5 + 1 + 7;
					System.out.println("本次打车费用" + g1 + "元");
				}
			}

		}

	}

}

 

因为g<=2和g>2的情况都包括了 ,所以不会执行到else if.  

如有帮助,请采纳

代码第12行h的范围要求是6到21才满足条件进入,一旦进入你的h的值就不会满足第19行的条件,你可以仔细看看。还有第19行的代码是双竖线 || 代表或,一个竖线代表或运算。