请教一个if语句判断的问题

fghnn 2013-11-21 10:36:54
比如一个公司里申请去某个地方旅游,参加的人要满足两个条件才行,一个是否是当地人,另一个是以前是否已经批过假
1,是当地人,以前批过假,同意
2,不是当地人,以前没批过假,同意
3,不是当地人,以前批过假,不同意
4,是当地人,以前没批过假, 同意
想请教这个if判断语句怎么写呢?
...全文
366 22 打赏 收藏 举报
写回复
用AI写文章
22 条回复
切换为时间正序
请发表友善的回复…
发表回复
Amarantine_LT 2013-11-21
  • 打赏
  • 举报
回复
Hi, 从实际出发考虑,这个需求就是需要一个审核结果。那只有一种情况是否定的,就不需要把其他情况都判断出来了。

public boolean isLocal(){
}

public boolean isFirst(){

}

public boolean isApproved(){
    if(!isLocal() && !isFirst()){
        return false;
    }
    return true;
}

public boolean 

chenlg1102 2013-11-21
  • 打赏
  • 举报
回复
根据你的需求: 有两个参数: 1)是否是当地人 2)以前是否批过假 但是仅当不是当地人并且以前批过假的时候是不同意,其它都同意。 代码如下: if(不是当地人&&以前批过假) "不同意"; else "同意";
时光清浅 2013-11-21
  • 打赏
  • 举报
回复
引用 11 楼 aa2650 的回复:
[quote=引用 8 楼 u011935764 的回复:] if(是当地人){ 同意 }else if(以前没批过假){ 同意 }else{ 不同意 } 楼主在琢磨琢磨
5L正解, 不是很简单的问题么, 你们.. 好水..[/quote] 只是清楚的列出来 看楼主的意思,第一步是要判断是不是当地人,然后再判断批过假。 喵进群-->扯淡群 138592585
BT_Dana 2013-11-21
  • 打赏
  • 举报
回复
引用 8 楼 u011935764 的回复:
if(是当地人){ 同意 }else if(以前没批过假){ 同意 }else{ 不同意 } 楼主在琢磨琢磨
5L正解, 不是很简单的问题么, 你们.. 好水..
oh_Maxy 2013-11-21
  • 打赏
  • 举报
回复
引用 9 楼 fghnn 的回复:
[quote=引用 5 楼 oh_Maxy 的回复:] 真够懒的。。 分类:当地人(是/否);批过假(是/否) 最多4种组合,只有“不是当地人,以前批过假”时,不同意,其它情况都同意。 if(不是当地人&&以前批过假){ 不同意 } else{ 同意 }
呵呵,我脑子想乱了,请教版主大大像这种判断问题有没有什么快速方便的判断方法?不然很容易乱的[/quote] 其实你的分类做的很好了,就是少了一步抽取共性的步骤而已。 一般思路,先一条条列出来,然后找规律。实在没啥规律,就一条条的当条件分类做吧! 另外也可以逆推下,按结果分类。
fghnn 2013-11-21
  • 打赏
  • 举报
回复
引用 5 楼 oh_Maxy 的回复:
真够懒的。。 分类:当地人(是/否);批过假(是/否) 最多4种组合,只有“不是当地人,以前批过假”时,不同意,其它情况都同意。 if(不是当地人&&以前批过假){ 不同意 } else{ 同意 }
呵呵,我脑子想乱了,请教版主大大像这种判断问题有没有什么快速方便的判断方法?不然很容易乱的
时光清浅 2013-11-21
  • 打赏
  • 举报
回复
if(是当地人){ 同意 }else if(以前没批过假){ 同意 }else{ 不同意 } 楼主在琢磨琢磨
谁谁谁是我 2013-11-21
  • 打赏
  • 举报
回复
引用 2 楼 fghnn 的回复:
[quote=引用 1 楼 meiwen1111 的回复:] 根据你的4种情况,可以看出只要“是当地人”或者“以前没批过假”就同意 if(是当地人||以前没批过家){ 同意; }else{ 不同意; } 把你的条件带进去测试一下……
你还漏了1种情况,不是当地人,以前没批假也是同意[/quote] if里面是一个或者的语句,包含你说的情况了
tony4geek 2013-11-21
  • 打赏
  • 举报
回复
这个 判断自己想想应该可以。
oh_Maxy 2013-11-21
  • 打赏
  • 举报
回复
真够懒的。。 分类:当地人(是/否);批过假(是/否) 最多4种组合,只有“不是当地人,以前批过假”时,不同意,其它情况都同意。 if(不是当地人&&以前批过假){ 不同意 } else{ 同意 }
ForestDB 2013-11-21
  • 打赏
  • 举报
回复

// 原始逻辑
if (是当地人)
{
    if (以前批过假)
        return 同意;
    else // 以前没批过假
        return 同意;
}
else // 不是当地人
{
    if (以前批过假)
        return 不同意;
    else // 以前没批过假
        return 同意;
}

// 第一次简化
if (是当地人)
{
    return 同意;
}
else // 不是当地人
{
    if (以前批过假)
        return 不同意;
    else // 以前没批过假
        return 同意;
}

// 第二次简化
// 假定“是当地人”返回true,“以前批过假”返回true,“同意”是true
return (是当地人() || (!是当地人() && !以前批过假()));
一如既往- 2013-11-21
  • 打赏
  • 举报
回复
你这很好判断啊 根据你的需求: 1.当地人以前批没批过假都同意 2.不是当地人,以前没批过假就同意 综上: 只要是当地人或者以前没批过假的都同意 if(当地人 || 以前没批过假){ //同意 }else{ //不同意 } 如果需要知道不同意的原因, 则还需要在else中做判断.
fghnn 2013-11-21
  • 打赏
  • 举报
回复
引用 1 楼 meiwen1111 的回复:
根据你的4种情况,可以看出只要“是当地人”或者“以前没批过假”就同意 if(是当地人||以前没批过家){ 同意; }else{ 不同意; } 把你的条件带进去测试一下……
你还漏了1种情况,不是当地人,以前没批假也是同意
谁谁谁是我 2013-11-21
  • 打赏
  • 举报
回复
根据你的4种情况,可以看出只要“是当地人”或者“以前没批过假”就同意 if(是当地人||以前没批过家){ 同意; }else{ 不同意; } 把你的条件带进去测试一下……
KennycdjjMicr 2013-11-21
  • 打赏
  • 举报
回复

if(以前没批过假) {
	// 同意
} else if(以前批过假) {
	if(是当地人) {
		// 同意
	} else {
		//不同意
	}
}
KennycdjjMicr 2013-11-21
  • 打赏
  • 举报
回复
if(以前没批过假) { // 同意 } else if(以前批过假) { if(是当地人) { // 同意 } else { //不同意 } }
爪哇三郎 2013-11-21
  • 打赏
  • 举报
回复
结贴啊,给分啊
小菜_ 2013-11-21
  • 打赏
  • 举报
回复
这应该简单的啊。想清楚逻辑就行了
sliwey 2013-11-21
  • 打赏
  • 举报
回复
额 上面那个反了 应该是 if(不是当地人&&以前批过假) { 不同意 } else { 同意 }
sliwey 2013-11-21
  • 打赏
  • 举报
回复
把不同意的判断了 不就好了 if(不是当地人&&以前批过假) { 同意 } else { 不同意 }
加载更多回复(2)

62,620

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧