this post was submitted on 13 Jun 2023
23 points (96.0% liked)

Programmer Humor

19572 readers
1787 users here now

Welcome to Programmer Humor!

This is a place where you can post jokes, memes, humor, etc. related to programming!

For sharing awful code theres also Programming Horror.

Rules

founded 1 year ago
MODERATORS
 
all 17 comments
sorted by: hot top controversial new old
[–] danda@waveform.social 4 points 1 year ago

Not sure why people still implement this themselves when there are APIs that will do it for you, like https://isevenapi.xyz/

[–] lowleveldata@programming.dev 4 points 1 year ago* (last edited 1 year ago)

Good solution! I think you should show the last 3 lines that makes it work tho. FIFY:

private bool IsEven(int number){
    if (number == 1) return false;
    else if (number == 2) return true;
    else if (number == 0) return true;
    else if (number == -1) return false;
    else return !IsEven(abs(number) - 1);
}
[–] jeff@programming.dev 3 points 1 year ago
bool isEven(int num) {
   return !isOdd(num);
}

bool isOdd(int num) {
   return !isEven(num);
}
[–] kane@programming.dev 3 points 1 year ago (1 children)

I always figured this was a nice joke but obviously not code that would ever actually be written by someone... Then I ran into this millimeter to inch conversion code in production this past month:

if (isNaN(mm)) return 0;
if (mm == 6) {
    inch = 0.125;
}
else if (mm == 8) inch = 0.25;
else if (mm == 10) inch = 0.375;
else if (mm == 15) inch = 0.5;
else if (mm == 20) inch = 0.75;
else if (mm == 25) inch = 1;
else if (mm == 30) inch = 1.25;
else if (mm == 40) inch = 1.5;
else if (mm == 50) inch = 2;
else if (mm == 60) inch = 2.5;
else if (mm == 80) inch = 3;
else if (mm == 90) inch = 3.5;
else if (mm == 100) inch = 4;
...
[–] ZILtoid1991@kbin.social 1 points 1 year ago (1 children)

Even worse is, that the accurate conversion to one inch is 25.4mm.

[–] Beanie@programming.dev 2 points 1 year ago

even worse, the first if statement randomly has brackets while none of the others do

[–] beaker@programming.dev 3 points 1 year ago

That's terrible! Didn't we all learn that each method must have exactly one return statement? Please refactor to use a return variable and a single return. And get off my lawn!

[–] fizgigtiznalkie@lemmynsfw.com 2 points 1 year ago

Those companies that judge output by lines of code are asking for this

[–] Buttons@programming.dev 2 points 1 year ago (3 children)

I've actually seen this type of code produced by a human-being who was trying to write good code. It was one of the students in my introduction to programming class in university, we had to write a function that squared a number or something, and he had written hundreds of lines of if-statements. Sometimes you just use what you know to complete an assignment I guess 🤷

[–] msage@programming.dev 2 points 1 year ago

Though I want to add this case for interview questions: "Write code that outputs every prime number smaller than 10."

And if the candidate doesn't do 'print "2,3,5,7";', I will deduct points.

[–] sisyphean@programming.dev 1 points 1 year ago (1 children)

Wow… did he not know about the multiplication operator?

[–] Buttons@programming.dev 2 points 1 year ago* (last edited 1 year ago)

Apparently not. It was very strange. Although it was the first few days of class and he might not have realized * is multiplication, because when does a non-programmer ever use * for multiplication?

[–] bufordt@sh.itjust.works 1 points 1 year ago

I did something similar for a programming competition once because I couldn't remember the c64 basic function to return string length.

Once I got home I rewrote it properly because it bugged me so badly. LEN(string variable) was the command. Stupid!

[–] bikesarethefuture@programming.dev 1 points 1 year ago (1 children)
[–] jeff@programming.dev 3 points 1 year ago

All my tests pass

[–] mamarguerat@discuss.tchncs.de 1 points 1 year ago
private void GenerateCode(){
  println("private bool IsEven(int number){");
  println("if (number == 1) return false");
  for(int i == 2; true; i += 2){
    println("if (number == " + i.tostring() + " return true";
    println("if (number == " + (i + 1).tostring() + " return false";
  }
}