Hoppa till innehåll

2 Java Frågor Och Ett Problem


WASD

Rekommendera inlägg

1. Finns det nåt script som läser av den senaste raden i "konsolen", och sedan gör det till en String? Jag vet att man kan använda Scanner för att läsa av en rad man skriver in i konsolen, men jag vill veta hur man gör för att läsa in en rad som redan finns där.

2. Kan man radera en variabel? om jag gör "int x=5;" och sedan vill ta bort x av nån anledning.

 

Problem:

Main.java ska hämta en funktion från tuna.java, men inget händer när den kommer till tunaObject.checkcheck(r1,xxx); den bara hoppar över det steget. Det funkar om jag lägger hela funktionen i main.java men jag kommer använda den flera gånger så det blir snyggare om den ligger i en egen class.

 

main.java

package test;
import java.util.Random;

public class Main {

    public static void main(String[] args) {
        tuna tunaObject = new tuna ();
        int xxx = 4;
        Random rand1=new Random();
        int r1 = rand1.nextInt(10);
        tunaObject.checkcheck(r1,xxx);
    }
}

1. skapar en funktion från tuna.java

2. gör en int xxx = 4

3. gör ett random nummer

4. gör int r1 till ett randomnummer, 0-9

5. skickar iväg r1 och xxx till funktionen i tuna.java

tuna.java

package test;
import java.util.Random;

public class tuna {

    public void checkcheck(int r1, int xxx){
        while(true){
            if (r1 == xxx){
                Random rand1=new Random();   //gör ett nytt randomnummer
                r1 = rand1.nextInt(10);     //gör r1 till ett annat randomnummer, 0-9
            }
            else{
               break;
            }
        }
    }
}

repetera while(true) ända tills r1 inte blir samma som xxx.

 

 

Säg till om det är nåt jag ska förklara tydligare. Problemet är alltså att main.java bara hoppar över tunaObject.checkcheck(r1,xxx);

Redigerat av WASD
Länk till kommentar
Dela på andra sajter

1. Scanner.nextLine() [returnerar String] är en funktion i Scanner klassen som returnerar hela nästa rad i inmatningsbufferten fram till nästa nyradstecken(returneras ej).

 

2. Vill du ta bort variabeln x så är det enda sätten att antingen stänga ner programmet, eller att stänga räckvidden till variabeln från programmet, t.ex:

import java.util.Scanner;

public class ScopeTest
{
    public static void main(String[] args)
    {
        Scanner scan = new Scanner(System.in);
        
        int choice = scan.nextInt();
        
        { // Öppna en räckviddsnivå
            int x = choice % 2; // Minne allokeras för x och x initieras
            
            switch(x)
            {
                case 0:
                    System.out.println("Zero");
                    break;
                case 1:
                    System.out.println("One");
                
            }
        } // Stäng räckviddsnivån, x försvinner ifrån programmets räckvidd och tas bort av Javas skräpinsamlare
    }
}

 

 

På den sista frågan vet jag inte, jag har aldrig använt paket.

Länk till kommentar
Dela på andra sajter

Gå med i konversationen

Du kan skriva nu och registrera dig senare. Om du har ett konto, logga in nu för att posta med ditt konto.

Gäst
Svara på det här ämnet...

×   Klistrade in som rich text.   Klistra in som vanlig text istället

  Endast 75 emojis är tillåtet.

×   Din länk har automatiskt inbäddats.   Visa som en länk istället

×   Ditt tidigare innehåll har återställts.   Rensa redigeraren

×   Du kan inte klistra in bilder direkt. Ladda upp eller infoga bilder från URL.

×
  • Skapa ny...