Avatar billede aslan Nybegynder
18. januar 2002 - 13:52 Der er 8 kommentarer og
3 løsninger

giver fejl

Dette giver fejl:

class Shifts {
   
    Shifts() {
       
        int Shift1Start = 0;
        int Shift1End = 759;
        int Shift2Start = 800;
        int Shift2End = 1559;
        int Shift3Start = 1600;
        int Shift3End = 2359;
        int Timenow = 1500;
       
        int Shift1StartIalt,Shift1EndIalt,Shift2StartIalt,
            Shift2EndIalt,Shift3StartIalt,Shift3EndIalt,
            TimeNowIalt;
       
        Shift1StartIalt = Shift1Start /100 * 60 + Shift1Start % 100;
        Shift1EndIalt = Shift1End /100 * 60 + Shift1End % 100;
        Shift2StartIalt = Shift2Start /100 * 60 + Shift2Start % 100;
        Shift2EndIalt = Shift2End /100 * 60 + Shift2End % 100;   
        Shift3StartIalt = Shift3Start /100 * 60 + Shift3Start % 100;
        Shift3EndIalt = Shift3End /100 * 60 + Shift3End % 100;
        TimeNowIalt = TimeNow /100 * 60 + TimeNow % 100;
       
        if (Shift1StartIalt < TimeNowIalt < Shift1EndIalt){
            System.out.println(\"U are in shift 1\");
        }
        elseif ( Shift2StartIalt < TimeNowIalt < Shift2EndIalt){
            System.out.println(\"U are in shift 2\");
        }
        elseif ( Shift3StartIalt < TimeNowIalt < Shift3EndIalt){
            System.out.println(\"U are in shift 3\");
        }
    }
      public static void main (String[] args) {
      new Shifts ();
  }
}

Fejlene er :
Shifts.java [28:1] \';\' expected
        elseif ( Shift2StartIalt < TimeNowIalt < Shift2EndIalt){
                                                              ^
Shifts.java [23:1] cannot resolve symbol
symbol  : variable TimeNow 
location: class Shifts
        TimeNowIalt = TimeNow /100 * 60 + TimeNow % 100;
                      ^
Shifts.java [23:1] cannot resolve symbol
symbol  : variable TimeNow 
location: class Shifts
        TimeNowIalt = TimeNow /100 * 60 + TimeNow % 100;
                                          ^
Shifts.java [25:1] operator < cannot be applied to boolean,int
        if (Shift1StartIalt < TimeNowIalt < Shift1EndIalt){
                                          ^
Shifts.java [28:1] operator < cannot be applied to boolean,int
        elseif ( Shift2StartIalt < TimeNowIalt < Shift2EndIalt){

... er der en der gider at gøre mig klogere?
Avatar billede nute Nybegynder
18. januar 2002 - 13:56 #1
hvis du skal finne ut om et tall ligger mellom to andre tall, så kan du ikke skrive det på den måten. Du er nødt til å finne ut om tallet er større en et tall OG mindre enn et annet tall i *to* operasjoner:

if (Shift1StartIalt < TimeNowIalt < Shift1EndIalt){

skal være:

if (Shift1StartIalt < TimeNowIalt AND TimeNowIalt < Shift1EndIalt){
           
Java er case sensitive hvilket betyr at variabelnavn må refereres til med det navn de er opprettet med.

Du oppretter en variabel \"Timenow\" men bruker \"TimeNow\" i din kode

/nute
Avatar billede disky Nybegynder
18. januar 2002 - 13:56 #2
byt
elseif ( Shift2StartIalt < TimeNowIalt < Shift2EndIalt){
                                                             

ud med

elseif ( Shift2StartIalt < TimeNowIalt  && TimeNowIalt < Shift2EndIalt)


Det samme gælder de andre if sætninger du kan kun sammenligne 2 tal af gangen.

altså istedet for

x < y < z skal du bruge x < y && y < z
                                                             
Avatar billede nute Nybegynder
18. januar 2002 - 13:56 #3
hov...denne linje:

if (Shift1StartIalt < TimeNowIalt AND TimeNowIalt < Shift1EndIalt){

skal være:

if (Shift1StartIalt < TimeNowIalt && TimeNowIalt < Shift1EndIalt){

(( sitter for tiden med VB, så man blir litt forvirret noen ganger :) ))
Avatar billede carstenknudsen Nybegynder
18. januar 2002 - 13:57 #4
I java hedder AND &&.
Avatar billede mosquito Nybegynder
18. januar 2002 - 14:01 #5
class Shifts {
   
    Shifts() {
       
        int Shift1Start = 0;
        int Shift1End = 759;
        int Shift2Start = 800;
        int Shift2End = 1559;
        int Shift3Start = 1600;
        int Shift3End = 2359;
        int TimeNow = 1500;
       
        int Shift1StartIalt,Shift1EndIalt,Shift2StartIalt,
            Shift2EndIalt,Shift3StartIalt,Shift3EndIalt,
            TimeNowIalt;
       
        Shift1StartIalt = Shift1Start /100 * 60 + Shift1Start % 100;
        Shift1EndIalt = Shift1End /100 * 60 + Shift1End % 100;
        Shift2StartIalt = Shift2Start /100 * 60 + Shift2Start % 100;
        Shift2EndIalt = Shift2End /100 * 60 + Shift2End % 100;   
        Shift3StartIalt = Shift3Start /100 * 60 + Shift3Start % 100;
        Shift3EndIalt = Shift3End /100 * 60 + Shift3End % 100;
        TimeNowIalt = TimeNow /100 * 60 + TimeNow % 100;
       
        if (Shift1StartIalt < TimeNowIalt && TimeNowIalt < Shift1EndIalt)
        {
            System.out.println(\"U are in shift 1\");
        }
        if( Shift2StartIalt < TimeNowIalt && TimeNowIalt < Shift2EndIalt);{
            System.out.println(\"U are in shift 2\");
        }
        if( Shift3StartIalt < TimeNowIalt && TimeNowIalt < Shift3EndIalt);{
            System.out.println(\"U are in shift 3\");
        }
    }
      public static void main (String[] args) {
      new Shifts ();
  }
}
Avatar billede mosquito Nybegynder
18. januar 2002 - 14:04 #6
du havde lavet et par \"grammatiske\" fejl.. bla. manglende \";\" i et par linier
og
ved anvendelse af if sætning.. bruges && såfremt der er flere udsagn der ønskes opfyldt.. derimod anvendes || hvis det kun skal være et af sagnene der skal være opfyldt...
Avatar billede mosquito Nybegynder
18. januar 2002 - 14:06 #7
og så den klassiske fejl med variableNavnet...
Timenow / TimeNow...
som nute siger... java er case sensitive...
Avatar billede aslan Nybegynder
18. januar 2002 - 14:11 #8
Jeg takker jer allesammen for jeres kommentarer!
Avatar billede mosquito Nybegynder
18. januar 2002 - 14:12 #9
Jeg takker c\",)
Avatar billede nute Nybegynder
18. januar 2002 - 14:13 #10
selv takk...
Avatar billede disky Nybegynder
18. januar 2002 - 14:15 #11
selv tak
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester