Tantangan
Diberikan metode C # berikut:
private static bool Test(bool a, bool b)
{
if (a && b) return false;
if (a) if (b) return true;
return false;
}
Berikan nilai a
dan b
yang true
dikembalikan.
Kondisi menang
Entri pertama yang dapat memberikan argumen yang benar untuk membuat metode yang diberikan dievaluasi untuk true
menang.
programming-puzzle
c#
aktor
sumber
sumber
Jawaban:
Ini mencetak
True
bagi saya dengan implementasi C # yang datang dengan Visual Studio 2015. Saya sebenarnya tidak tahu C #, tapi saya pikir saya akan mencoba untuk menulis beberapa kode C dan melihat apakah itu berhasil. Saya berharap bahwa kompiler akan menganggap bahwa True selalu direpresentasikan sebagai 1 dan menggunakan bitwise AND. Dalam mode Debug, ini memang masalahnya (ini bekerja dengan Release juga). Ini menggunakan bitwise AND untuk kondisi pertama dan dua perbandingan ke nol untuk yang kedua:sumber