还在用单一方法判断奇偶吗?使用java中的三种判断分支语句(if、case、三目) 判断奇偶。

import java.io.InputStream;
import java.io.PrintStream;
import java.util.Scanner;

/**
 * java中的三种判断(分支)语句 : if、case、三目。
 * 还在用单一方法判断奇偶吗?使用java中的三种判断分支语句(if、case、三目) 判断奇偶。
 * if和case的效率问题:
 * 要看你具体的需求,就好像是判断分数,120分的卷,50以下是D,51-71是C,72-95是B,96-120是A的话,那么这种情况就选用if else比较合适,
 * 如果是反过来通过评级输出分数段就是switch比较合适了。
 * if分支越多效率越低,switch case则不用,它会直接进入相应的分支,省去了判断环节,如果没有相应的分支,只会进入default。但是switch case使用范围比if else小。
 * 	
 * @author FFrog
 *
 */
public class Judges {
	private static InputStream ips = System.in;
	private static int num = new Scanner(ips).nextInt();
	private static PrintStream out = System.out;

	/**
	 * if(boolen){} 
	 * if(boolen){}else{} 
	 * if(boolen){}else if(boolean){}else{}
	 */
	public static void oneMethod() {
		// 已经在监听输入的num了,没有输入的时候不走这里
		out.println("请输 入一个整数:");
		// java中“取余符号%”和“除号/”是不同的,“%取余”
		// 能被2整除的数是偶数(包括正偶数和负偶数),所以0是偶数,0不能做除数,同时0有个特殊的功能,可以把正偶数和负偶数区分开。
		// 被2除有余数(不能被2整除)的是奇数。
		if (num % 2 == 0) {
			out.println("if运算结果:"+num + "这个数是偶数");
		} else {
			out.println("if运算结果:"+num + "这个数是奇数");
		}

	}

	/**
	 * switch(int/String){case1:xx:;break;case2:xx:;case3:xx;default:xx;} default可定义也可不定义。
	 * 每一个case都是一个分支,就像一个开关,相当于一个方法体:相当于case空格[int/String]:{xx}方法体。eg:case2和case3都执行的话,省去break;
	 */
	public static void twoMethod() {
		boolean bln = num % 2 == 0;
		int flag = 0;
		if (bln == true && num > 0) {
			// 正偶数
			flag = 2;
		} else if (bln == true && num < 0) {
			// 负偶数
			flag = -2;
		} else if (bln == true && num == 0) {
			// 偶数0
			flag = 0;
		} else if (bln == false && num > 0) {
			// 正奇数
			flag = 1;
		} else {
			// 负奇数
			flag = -1;
		}
		// Cannot switch on a value of type long/boolean. Only convertible int values, strings or enum variables are permitted
		switch (flag) {
		case 2:
			out.println("case运算结果:"+num + "是正偶数");
			break;
		case -2:
			out.println("case运算结果:"+num + "是负偶数");
			break;
		case 0:
			out.println("case运算结果:"+num + "是偶数");
			break;
		case 1:
			out.println("case运算结果:"+num + "是正奇数");
			break;
		case -1:
			out.println("case运算结果:"+num + "是负奇数");
			break;
		}

	}

	/**
	 * 三目(三元)运算。 条件/表达式?结果1:结果2; 条件/表达式为true时,返回结果1;条件/表达式为false时返回结果2。
	 */
	
 public static void threeMethod(){
	 String smStrFlag = "0";
	if (num % 2==0)
		//奇数
		smStrFlag = "2";
	else
		//偶数
		smStrFlag = "1";
	
	//"=="比较的是两个字符串的地址是否为相等(同一个地址),equals()方法比较的是两个字符串对象的内容是否相同(当然,若两个字符串引用同一个地址,使用equals()比较也返回true)。
	这里需要变量接一下子
	String result = (smStrFlag.equals(smStrFlag)) ? "偶数":"奇数";
	out.println("三目运算结果:"+num+"这个数是"+result);
	 
 }

	public static void main(String[] args) {
		oneMethod();//0 请输 入一个整数: if运算结果:0这个数是偶数
		twoMethod();//case运算结果:0是偶数
		threeMethod();//三目运算结果:0这个数是偶数
	}
}

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值