tilbage til lektionen

Rodet kodestil

vigtighed: 4

Hvad er der galt med kodestilen nedenfor?

function pow(x,n)
{
  let result=1;
  for(let i=0;i<n;i++) {result*=x;}
  return result;
}

let x=prompt("x?",''), n=prompt("n?",'')
if (n<=0)
{
  alert(`Opløftning i ${n} potens er ikke understøttet, indtast venligst et helt tal større end nul`);
}
else
{
  alert(pow(x,n))
}

Kan du fikse det?

Du kunne bemærke følgende:

function pow(x,n)  // <- intet mellemrum mellem argumenter
{  // <- krøllet krøllet parentes på en separat linje
  let result=1;   // <- intet mellemrum før eller efter =
  for(let i=0;i<n;i++) {result*=x;}   // <- intet mellemrum
  // indholdet af { ... } bør være på en ny linje
  return result;
}

let x=prompt("x?",''), n=prompt("n?",'') // <-- teknisk muligt,
// men bedre at gøre det til 2 linjer, også der mangler mellemrum og semikolon
if (n<=0)  // <- ingen mellemrum inde i (n <= 0), og der bør være en ekstra linje over det
{   // <- krøllet parentes på en separat linje
  // nedenfor - lange linjer kan opdeles i flere linjer for bedre læsbarhed
  alert(`Opløftning i ${n} potens er ikke understøttet, indtast venligst et helt tal større end nul`);
}
else // <- kunne skrive det på en enkelt linje som "} else {"
{
  alert(pow(x,n))  // intet mellemrum og manglende ;
}

Den tilrettede variant:

function pow(x, n) {
  let result = 1;

  for (let i = 0; i < n; i++) {
    result *= x;
  }

  return result;
}

let x = prompt("x?", "");
let n = prompt("n?", "");

if (n <= 0) {
  alert(`Opløftning i ${n} potens er ikke understøttet,
    indtast venligst et helt tal større end nul`);
} else {
  alert( pow(x, n) );
}