Avatar billede mads375 Juniormester
22. juli 2013 - 14:22 Der er 14 kommentarer og
1 løsning

lokalvariabler i java

Hej.

Jeg er igang med at lave et lille program i java. Jeg vil gerne lave så man taster sit køn ind, og hvis man er male bliver man derigeret hen til en specifik hjemmeside, og hvad man er female en anden hjemmeside.

Det eneste jeg er i tvivl om er hvordan man laver lokalvariablerne til min scanner. Fx her kan jeg godt finde ud af det, når det er med int: (ikke noget med min nuværende opgave)

package test_center;

public class Increment {
    public static void main(String[]main) {
        //Scanner Mads = new Scanner(System.in);
       
        int tuna = 5;
        int bass = 18;
       
        //Assigment operators:
        tuna = tuna + 5;
        tuna = tuna + 20;
        bass = bass + 1;
       
        //Increment operators:
        System.out.println(++tuna);
        System.out.println(tuna);
        System.out.println(--tuna);
        System.out.println(bass++);
       
       
    }

}


Men skal man bruge noget med string istedet for. Altså fx:

Links male = new male;
Links female = new female;

mvh Mads
Avatar billede arne_v Ekspert
22. juli 2013 - 14:29 #1
Normalt vil du laese en String in med Scanner og udfra den saa instantiere en eller flere klasser.
Avatar billede mads375 Juniormester
22. juli 2013 - 14:36 #2
import java.util.Scanner;

public class Links {
    public static void main(String[]args) {
        Scanner gender = new Scanner(System.in);
       
        System.out.println("Which gender are you?");
       
        String male = scanner.nextLine();
                String female = scanner.nextLine();

hej Arne. Mange tak for svaret. Er det noget i den stil?

Mvh Mads
Avatar billede arne_v Ekspert
22. juli 2013 - 14:43 #3
Snarere:

Scanner scanner = new Scanner(System.in);
System.out.println("Which gender are you?");
String gender = scanner.nextLine();
if(gender.equals("male")) {
    ...
} else if(gender.equals("female")) {
    ...
} else {
    ...
}
Avatar billede mads375 Juniormester
22. juli 2013 - 15:01 #4
Hvis man skulle gøre det lidt primitivt, kunne man så også gøre det sådan her:

import java.util.Scanner;

public class Links {
    public static void main(String[]args) {
        Scanner gender = new Scanner(System.in);
       
        System.out.println("Which gender are you?");
       
        String gender = scanner.nextLine();
       
        if (gender == male) {
            redirectURL = "www.google.dk";
        }
       
        else
            redirectURL = "www.eb.dk";
       
    }

}

redirectURL fungerer ikke, ved ikke helt hvad det hedder i java. Men det kan helt sikkert gøres smartere, men prøver bare lige at gøre alt fra bunden, så jeg forstår det.  Ligger du ikke også et svar Arne :-)

Mvh Mads
Avatar billede mads375 Juniormester
22. juli 2013 - 15:29 #5
Hvis jeg lavede en lokalvariabel, burde dette så ikke virke?

import java.util.Scanner;

public class Links {
    public static void main(String[]args) {
       
        Scanner scanner = new Scanner(System.in);
       
        System.out.println("Which gender are you?");
       
        String gender = scanner.nextLine();
       
        if (gender == male) {
            System.out.println("You are a male");
        }
        else {
            System.out.println("You are a female");
        }
    }

}

Men er i tvivl om hvordan man laver lokal variablen?

String gender = new gender(male,female);
gender = String(male,female);
Avatar billede mads375 Juniormester
22. juli 2013 - 15:51 #6
Programmet kører egentligt nu, men jeg får kun male frem når jeg taster gender ind:

import java.util.Scanner;

public class Links {
    @SuppressWarnings("resource")
    public static void main(String[]args) {
       
        Scanner scanner = new Scanner(System.in);
       
        String male = "male";
       
       
        System.out.println("Which gender are you?");
       
        String gender = scanner.nextLine();
       
        if (gender == male) {
            System.out.println("You are a male");
        }
        else {
            System.out.println("You are a female");
        }
    }

}

jg forstår koden sådan her: Først laves en Scanner, hvor efter en lokalvariabel laves. Man skriver ind hvilken køn man er. Derefter henter scanneren det indtastede, og man får at vide at man via if sætningen hvad man er. Programmet skriver blot kun female ud. If sætningen læser jeg som om, at hvis man er en male, får man dette svar, men programmet spytter kun female ud?
Avatar billede arne_v Ekspert
22. juli 2013 - 21:54 #7
if (gender == male) {

skal vaere:

if (gender.equals(male)) {
Avatar billede arne_v Ekspert
22. juli 2013 - 21:55 #8
En af de smaa finesser i Java.

s1 == s2

tester om s1 og s2 er samme variabel altsaa samme sted i memory

s1.equals(s2)

tester om s1 og s2 har samme indhold
Avatar billede mads375 Juniormester
22. juli 2013 - 22:43 #9
Hej Arne.

Ok så er jeg ved at være med.  Jeg mangler bare lige det med den lokalvariabel. Når jeg skriver equals:

http://postimg.org/image/9cx5r0chv/

så får jeg beskeden at male "cannot be resolved to a variable" Jeg laver så en variable:

http://postimg.org/image/3raqmybsz/

og får fejlen: "Illegal modifier for parameter male; only final is permitted". Jeg mangler vel stadigvæk en lokalvariabel?
Avatar billede mads375 Juniormester
22. juli 2013 - 22:48 #10
Hov nu fik jeg det til at virke:

http://postimg.org/image/avsjvzj2b/

Bortset fra det printer det forkerte, hehe. Ligger du ikke et svar Arne?

Mvh Mads
Avatar billede mads375 Juniormester
22. juli 2013 - 22:50 #11
Synes da egentligt det burde printe det rigtige?

import java.util.Scanner;

public class Links {
    @SuppressWarnings("resource")
    public static void main(String[]args) {
       
        String male = new String();
       
        Scanner scanner = new Scanner(System.in);
       
        System.out.println("Which gender are you?");
       
        String gender = scanner.nextLine();
       
        if (gender.equals(male)) {
            System.out.println("You are a male");
        }
        else {
            System.out.println("You are a female");
        }
    }

}
Avatar billede arne_v Ekspert
23. juli 2013 - 02:36 #12
String male = new String();

svarer til:

String male = "";

Og det er vel ikke det du vil.
Avatar billede arne_v Ekspert
23. juli 2013 - 02:36 #13
String male = "male";

formoder jeg
Avatar billede arne_v Ekspert
23. juli 2013 - 02:36 #14
og et svar
Avatar billede mads375 Juniormester
23. juli 2013 - 11:05 #15
tak for det Arne :-) Hvis andre har lyst til at se koden er den her:


import java.util.Scanner;

public class Links {
    @SuppressWarnings("resource")
    public static void main(String[]args) {
       
        String male = "male";
        int age = 40;
       
        Scanner scanner = new Scanner(System.in);
       
        System.out.println("Which gender are you?");
       
        String gender = scanner.nextLine();
       
        if (gender.equals(male)) {
            System.out.println("You are a male");
        }
        else {
            System.out.println("You are a female");
        }
       
        System.out.println("Du kan kun fortsætte hvis du er over 40 år, så hvor gammel er du?");
        age = scanner.nextInt();
       
        if (age < 40) {
            System.out.println("Nej tak du er ikke velkommen");
           
        }
       
        else {
            System.out.println("Velkommen");
        }
       
       
       
    }

}
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