Gå til innhold

Feil med en if


Anbefalte innlegg

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?

Lenke til kommentar
Videoannonse
Annonse
(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.

Lenke til kommentar

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:

Lenke til kommentar
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... :-?

Lenke til kommentar


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.

Lenke til kommentar

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)

Lenke til kommentar
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 :) )

Lenke til kommentar
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.

Lenke til kommentar

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:

Lenke til kommentar
  • 2 uker senere...

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...