**For further help with Coding Bat (Java), please check out my books. I am also available for tutoring.**

**answerCell:**

public boolean answerCell(boolean isMorning, boolean isMom, boolean isAsleep) { if (isAsleep) return false; if (isMorning) return isMom; return true; }

The sample solution on the website is less clean, though:

public boolean answerCell(boolean isMorning, boolean isMom, boolean isAsleep) { if (isAsleep) { return false; } if (isMorning && !isMom) { return false; } return true; }

**teaParty:**

public int teaParty(int tea, int candy) { if (candy < 5 || tea < 5) return 0; if (candy >= 5 && tea >= 5 && (candy >= 2 * tea || tea >= 2 * candy)) return 2; return 1; }

**twoAsOne:**

public boolean twoAsOne(int a, int b, int c) { return a + b == c || a + c == b || b + c == a; }

**inOrder:**

public boolean inOrder(int a, int b, int c, boolean bOk) { if (bOk) return b < c; return a < b && b < c; } [/sourcecode] <b>inOrderEqual:</b> public boolean inOrderEqual(int a, int b, int c, boolean equalOk) { if (equalOk) return a <= b && b <= c; return a < b && b < c; } [/sourcecode] <b>lastDigit:</b> public boolean lastDigit(int a, int b, int c) { return a % 10 == b % 10 || a % 10 == c % 10 || b % 10 == c % 10; }

**lessBy10:**

public boolean lessBy10(int a, int b, int c) { return Math.abs(a - c) >= 10 || Math.abs(a - b) >= 10 || Math.abs(b - c) >= 10; }

**withoutDoubles:**

public int withoutDoubles(int die1, int die2, boolean noDoubles) { if (!noDoubles) return die1 + die2; if (die1 == die2) return (die1 != 6) ? die1 + die2 + 1 : die1 + 1; return die1 + die2; }

**maxMod5:**

public int maxMod5(int a, int b) { if (a == b) return 0; if (a % 5 == b % 5) return (a < b) ? a : b; return (a < b) ? b : a; } [/sourcecode] <b>redTicket:</b> public int redTicket(int a, int b, int c) { if (a == b && b == c) return (c == 2) ? 10 : 5; if (a != b && a != c) return 1; return 0; }

**For further help with Coding Bat (Java), please check out my books. I am also available for tutoring.**

Nanapublic boolean answerCell(boolean isMorning, boolean isMom, boolean isAsleep) {

if ( !isMorning && !isAsleep && !isMom)

return true;

if ( isMorning && isMom && isAsleep)

return false;

if ( isMorning && !isMom && isAsleep)

return false;

if ( isMorning && isMom && !isAsleep)

return true;

if ( !isMorning && isMom && !isAsleep)

return true;

return false;

}

Gregor UlmPost authorThis solution is certainly a lot less appealing than any of the two examples given above in the post.

AdamOr this:

return (isMorning ? (isMom ? (isAsleep ? false : true) : false) : !isAsleep);

Gregor UlmPost authorAdam,

nesting the ternary operator leads to rather unreadable code. You can try this yourself. Just wait a few weeks, and then try to figure out what the code you wrote was supposed to do, without looking at the exercise description at CodingBat.

A Helpful PersonI was able to use the ternary operator in this way to shorten it:

answerCell:

public boolean answerCell(boolean isMorning, boolean isMom, boolean isAsleep) {

return isMorning ? isMom && !isAsleep : !isAsleep;

}

*I did “!isAsleep” because I want it to return true if isAsleep == false and vise versa.

FrscoAre there any disadvantages of reducing the inOrder code into a ternary operator, such as this?

public boolean inOrder(int a, int b, int c, boolean bOk) {

return (bOk) ? (c > b) : (a < b && b < c);

}