arduino ir remote calculator

Hey.
i’m new to arduino and c programing.

Trying to make an ir remote controlled calculator. feeling im very close but my cases seem to be running over and over. im lacking the skill to find the problem my self, so help whould be very appreciated.

problem:
-The first case runs over and over.

-The program doesn’t go into the next case.

posting my code here:

#include <IRremote.h>
#include <IRremoteInt.h>


#define CH- 16753245
#define CH  16736925
#define CH+ 16769565
#define skipleft 16720605
#define skipRight 16712445
#define play/pause 16761405
#define minus   16769055
#define  pluss  16754775
#define    nul 16738455
#define onehundo 16750695
#define twohundo 16756815
#define one  16724175
#define two 16718055
#define three 16743045
#define four 16716015
#define five 16726215
#define six  16734885
#define seven 16728765
#define eight 16730805
#define nine  16732845


const int RECV_PIN = 11; //leser ir-sensor

IRrecv irrecv(RECV_PIN); //lager irrecv objekt

decode_results results; //lagrer resultat fra dekodet signal



int tall_1 = 0;  //lager variable
int tall_2 = 0;
long total = 0;

char nyttTall; //lagrer om man skal plusse eller minuse




void setup()
{
 Serial.begin(9600); //starter serialport
 irrecv.enableIRIn(); //starter ir motager
 Serial.println(" Velkommen_til_kalkulering_på_avstand "); //skriver en hyggelig melding til bruker
}

void loop() {
 nummer (); //kaller funskjonen nummer hvor alle koder fra ir-kontroll er lagret


 // results.value = nyttTall ; //skal lese det som kommer inn fra ir

 //hvis man trykker på fjernkontroll så går man inn her
 if (Serial.available() > 0) { //leter etter lagrede tall større en 0
   nyttTall = Serial.read(); //skal lese tall som kommer inn
   delay(200);
 }
 switch (nyttTall) {   //ser på tallene i results. hvis det er tall der begynner det ¨kjøre caser

   case 48 ... 57: // samler sammen verdier til en av tegnene er lest "+-*/"


     tall_1 = tall_1 * 10 + (nyttTall - '0'); //tar imot ett tall og hvis tallet er større en ti ganges det nye tallet med ti. så hver gang det flyttes til høyre får det en tier med seg
     Serial.print("tall 1 = ");
     Serial.println(tall_1); //Skriver tall_1
     break;

   case pluss:
     tall_1 = (total != 0 ? total : tall_1); //hvis totalen er forskjellig fra null, totalen hvis ikke tall_1

     tall_2 = SecondNumber(); // samler inn neste tall. tall_2
     total = tall_1 + tall_2;

     Serial.print(total);
     tall_1 = 0, tall_2 = 0; // nullstiller verdiene tilbake til null for neste runde
     break;
     
/*case 'F':
if(nyttTall<48 && nyttTall>57){
Serial.print("error");
}*/

   case 'C':
     if ("clear") {
       total = 0;
       Serial.println("cleared");
     }

     break;
 }


 irrecv.resume();
 delay(100);
}


long SecondNumber()
{
 while ( true )
 {
   //nyttTall = Serial.read();
   if (nyttTall >= '0' && nyttTall <= '9')
   {
     tall_2 = tall_2 * 10 + (nyttTall - '0');
     return tall_2;
     Serial.print(tall_2);
   }

   if (tall_1 && tall_2 && '=') { //hvis tall_1 og tall_2 i tillegg til = er trykket returnere total
     Serial.print("svar");
     return total; //returnerer totalen

     break;
   }

 }
}

//dekoder ir signalet
void nummer() {
 if (irrecv.decode(&results) == true ) {
   if (results.value == 16738455) {
     Serial.print("0");
     nyttTall = '0';

   }

   if (results.value == 16724175) {
     Serial.print("1");
     nyttTall = '1';
   }
   if (results.value == 16718055) {
     Serial.print("2");
     nyttTall = '2';
   }
   if (results.value == 16743045) {
     Serial.print("3");
     nyttTall = '3';
   }
   if (results.value == 16716015) {
     Serial.print("4");
     nyttTall = '4';
   }
   if (results.value == 16726215) {
     Serial.print("5");
     nyttTall = '5';
   }
   if (results.value == 16734885) {
     Serial.print("6");
     nyttTall = '6';
   }
   if (results.value == 16728765) {
     Serial.print("7");
     nyttTall = '7';
   }
   if (results.value == 16730805) {
     Serial.print("8");
     nyttTall = '8';
   }
   if (results.value == 16732845) {
     Serial.print("9");
     nyttTall = '9';
   }
   if (results.value == 16754775) {
     Serial.print("+");
     nyttTall = '+';
   }
   if (results.value == 16761405) {
     Serial.print("=");
     nyttTall = '=';
   }
   if (results.value == 16753245) {
     Serial.print("clear");
     nyttTall = 'C';
   }

   irrecv.resume();
 }
}

Please reformat your code, using code tags </>.

Your code (comments) will also be understandable better to speakers of your language, see the available national forums.

The
#define CH- 16753245
is not very well formed. Use only characters and digits for the names, here e.g. CHminus.

The many if (results.value== nnn) can be replaced by a better understandable switch(results.value).