Gå til innhold

Feil med en if


Anbefalte innlegg

Skrevet

OK, la meg bare si først at jeg er ganske grønn i JavaScript. Har gått igjennom noen tutorials, men kan det liksom ikke lell.

 

Holder på med en del av et script som beregner fraktkostnad ut ifra hvor stor en variabel (strShipping) er.

 


if (strShipping == 0) {

     strFraktkostnad = 0;

}

else if (strShipping <= 1 >= 999) {

     strFraktkostnad = 55;

}

else if (strShipping <= 1000 >= 9999) {

  strFraktkostnad = 105;

}

else if (strShipping <= 10000 >= 25000) {

  strFraktkostnad = 179;

}

else {

  strFraktkostnad = 0;

}

 

Dette funker ikke. StrFraktkostnad blir den samme uansett: 0. :cry:

 

Noen som har peiling på hva som kan være galt?

Videoannonse
Annonse
Skrevet

(strShipping <= 1 >= 999)

 

logisk feil, strShipping kan da ikke være mindre enn 1 og større enn 999.

 

prøv noe alá

 

((strShipping >= 1) && (strShipping <= 999))

Skrevet
(strShipping <= 1 >= 999)

 

logisk feil, strShipping kan da ikke være mindre enn 1 og større enn 999.

 

prøv noe alá

 

((strShipping >= 1) && (strShipping <= 999))

Takker!

 

Ble litt feil med < og >, ja.. :wink:

 

 

 

EDIT:

Får det fortsatt ikke til å funke.

 


if (strShipping >= 0) {

     strFraktkostnad = 0;

}

else if ((strShipping >= 1) && (strShipping <= 999)) {

     strFraktkostnad = 55;

}

else if ((strShipping >= 1000) && (strShipping <= 9999)) {

  strFraktkostnad = 105;

}

else if ((strShipping >= 10000) && (strShipping <= 25000)) {

  strFraktkostnad = 179;

}

else {

  strFraktkostnad = 0;

}

Det er den første (>= 0) som vises hele tiden, selv om strShipping er 230. StrFraktkostnad blir altså 0 uansett.

Skrevet

logisk feil: strShipping er større eller lik null - strFrakt settes til 0 og resten av setningen ignoreres.

Snu på første< ? regner med at den første skal teste om strShipping er mindre enn null

 

kan ikke fatte at jeg ikke så dette første gangen :oops:

Skrevet
logisk feil: strShipping er større eller lik null - strFrakt settes til 0 og resten av setningen ignoreres.

Snu på første< ? regner med at den første skal teste om strShipping er mindre enn null

 

kan ikke fatte at jeg ikke så dette første gangen :oops:

Hm.. Siden strShipping ikke KAN bli mindre enn null, satte jeg det slik:

if (strShipping == 0) {

     strFraktkostnad = 0;

}

else if ((strShipping >= 1) && (strShipping <= 999)) {

     strFraktkostnad = 55;

}

else if ((strShipping >= 1000) && (strShipping <= 9999)) {

  strFraktkostnad = 105;

}

else if ((strShipping >= 10000) && (strShipping <= 25000)) {

  strFraktkostnad = 179;

}

else {

  strFraktkostnad = 0;

}

Men det funker fortsatt ikke. Får ikke noe "feil" heller... :-?

Skrevet


if (strShipping == 0) {

     strFraktkostnad = 0;

  alert("0");

}

else if ((strShipping >= 1) && (strShipping <= 999)) {

     strFraktkostnad = 55;

  alert("1-999");

}

else if ((strShipping >= 1000) && (strShipping <= 9999)) {

  strFraktkostnad = 105;

  alert("1000-9999");

}

else if ((strShipping >= 10000) && (strShipping <= 25000)) {

  strFraktkostnad = 179;

  alert("10000-25000");

}

else {

  strFraktkostnad = 0;

  alert("else, (0)");

}

Det er det første alternativet som kommer frem.

 

Har også satt inn en document.write og skjekket at strShipping faktisk er 230.

Skrevet
må bare spørre - står str for string?

Hm.. Det vet jeg egentlig ikke. Er ikke jeg som har kodet resten av skriptet..

 

Mulig jeg er utrolig dum nå, men de ser ut som vanlige variabler. :shrug:

Skrevet

cluet er om variablen blir definert som String eller int. Er den String så er du litt ute å kjøre siden du ikke kan bruke likhet som operator på strenger

Prøv å caste om strShiping til int hvis du er usikker.

Hvordan blir strShiping definert?

(husker ikke om int er relevant i js. Driver mest med java - det jeg mener med int er seff number)

Skrevet
Har også satt inn en document.write og skjekket at strShipping faktisk er 230.

hmm, lesebrillene på plass idag blib?

 

Hmm. *titter seg på nesetuppen*

 

Nei, ser ikke slikt ut. Tror ikke jeg sov lenge nok i natt. Usj. Beklager :)

 

Forresten, du kan jo bare bytte den ut med en Switch eller? (Har bare vært borti JS en gang før :) )

Skrevet
cluet er om variablen blir definert som String eller int. Er den String så er du litt ute å kjøre siden du ikke kan bruke likhet som operator på strenger

Prøv å caste om strShiping til int hvis du er usikker.

Hvordan blir strShiping definert?

(husker ikke om int er relevant i js. Driver mest med java - det jeg mener med int er seff number)

Som jeg sa: kan ikke dette! :wink:

 

Hvordan caster man? Er ikke helt sikkert på hva verken en string eller int er... :oops:

 

Høres jo logisk ut at det er en string når det står str foran... Hva gjør jeg hvis det skulle vise seg å være det?

 

(Virker sikkert utrolig masete nå.. :wink: )

 

 

Blib: Har testet det, og den var 230.

Skrevet

Der hvor du deklarerer strShipping skal det stå:

strShipping=230; for å deklarere int (nummer)

strShipping="230"; for å deklarere string (bokstaver)

 

et eksempel:

//lager fire variabler, to integer og to string

var int1;

int1 = 2;

var int2;

int2 = 1;

var str1;

str1 = "1";

var str2;

str2 = "2";

 

//kalkulerer som string eller int

 

var svarInt;

svarInt = int1 + int2;

 

var svarStr;

svarStr = str1 + str2;

 

nå skal svarInt være 3, mens svarStr skal være 12..

detter er tatt rett fra hodet uten å teste så jeg er ikke sikker på at alt er riktig...

 

if-else - setningen fungerer bare med int...!! :wink:

Skrevet

Åkei! Det tenkte jeg óg på, bare at jeg ikke visste hva de forskjellige hette! :smile:

 

Det er nok en int, ja.

 

 

EDIT: Yep, (strShipping+2) er 232. (Og strShipping er 230).

Skrevet

Det var da som pokker. Var sikker på at løsningen var string...

 

Kanke du maile hele siden til meg så skal jeg fikle litt. Man får så mye bedre forståelse for ting når man kan leke litt...

  • 2 uker senere...
Skrevet

Kom på en ting for en stund siden man har glemt å svare... har du med en return?? hvis ikke er det jo ikke rart i at det ikke funker da. Dette gjelder seff bare i en function, men allikevel....

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
  • Hvem er aktive   0 medlemmer

    • Ingen innloggede medlemmer aktive
×
×
  • Opprett ny...