Vinnaren i pepparkakshustävlingen!
2015-09-06, 14:13
  #6289
Medlem
Citat:
Ursprungligen postat av micke093
Jag håller nu på med en uppgift som heter "Burr" leken som ni säker känner till.
Mitt problem är när jag ber väljaren att ange ett tal mellan 2-9.
Har gjort en check där programmet kollar ifall väljaren angivit ett tal i rätt intervall men kompilatorn klagar på min if sats som då kollar detta.

Här är koden för den som skulle vilja kolla vad felet beror på och ge mig förslag hur man kan rätta till det:



Mycket tacksam för den som orkar ta sig tiden!

Utan att kolla för noga i koden då den är oläsbar så är denna if-sats fel: if(tal >1 && <9). Det ska stå: if(tal > 1 && tal <9). Sen ett annat fel(är inte säker på detta så någon mer kunning kanske kan bekräfta) så ska du använda parantes här: if(i % burr == 0) så det blir if((i % burr) == 0).
Citera
2015-09-06, 14:29
  #6290
Medlem
Citat:
Ursprungligen postat av pkj
Utan att kolla för noga i koden då den är oläsbar så är denna if-sats fel: if(tal >1 && <9). Det ska stå: if(tal > 1 && tal <9). Sen ett annat fel(är inte säker på detta så någon mer kunning kanske kan bekräfta) så ska du använda parantes här: if(i % burr == 0) så det blir if((i % burr) == 0).

tack för hjälpen, har åtgärdat det men kvarstår ett par fel.
Citera
2015-09-06, 14:30
  #6291
Medlem
Har åtgärdat ett par fel i koden och den går nu att köra, däremot registrerar den inte talet man anger, oavsett vilket det är, här är den nya koden:
Kod:
package ovn4;
import java.util.Scanner;

public class 
Ovn4 {
   
    public static 
void main(String[] args) {
        
        
        
Scanner scan=new Scanner(System.in);
        
int burr=0;
        
int tal=0;
        
int check1;
        
        
System.out.println("Ange ett tal mellan 2-9");
        
        while(
check==1)
            
            
tal=scan.nextInt();
            if(
tal >&& tal <9)
            {
            
tal+=burr;
            
check 0;
            }
            else 
            {
            
System.out.println("Ange ett tal mellan 2-9!!");
            
check=1;
            }      
        
        for(
int i=0i<100i++)
            
            if((
burr) == 0)
            {
            
System.out.print("Burr ");
            }
            else if(
10 == burr)
            {
            
System.out.println("Burr");
            }
            else
            {
            
System.out.printf("%d "i);
            }
                   
    }
    

__________________
Senast redigerad av Proton 2015-09-06 kl. 19:37.
Citera
2015-09-06, 16:13
  #6292
Medlem
Är det någon som vet vad det är som kompilern klagar på med mina klasser och min main? Java verkar vara ett väldigt komplicerat språk att skriva i, blir alltid massa klagomål på dessa saker, eller har jag missat något bra knep på hur man kan tänka bara för att få det att fungera?

Den som har lust behöver bara pastea in koden i sin java-konsoll och titta var anmärkningarna kommer, säkert uppenbart för er skickliga men inte för amatörer som mig.

Här är en bild för er som inte vill kopiera koden: https://gyazo.com/5f2a7ee78004e4fdb2954a05a81a52a7

Vill tacka er hjältar som orkar! :)

Här kommer hela den riktiga koden:

Kod:
package dice;
import java.util.Random;





public class 
Dice {
    
    private 
int value;  //kommer bara att fungera i konstruktorer och metoder
    
    
public Dice(){
    
        
value 1;
    }
    
    public 
void throwDice()
    {
         
value = (int)(Math.random()*6+1);
    }
    
    public 
int getValue()
    {
    return 
value;
    }
    
    
    public 
String toString()
    {
        
String info "value = " value;
        return 
info;
    }
    
    
    }
 
public class 
DiceMain{
    
    public static 
void main(String[] args)
{
    
Dice d1 = new Dice();
    
Dice d2 = new Dice();
    
System.out.println(d1.toString() + ", " d2.toString());
    
d1.throwDice();
    
d2.throwDice();
    
    
System.out.println(d1.toString() + ", " d2.toString ());
    
    
//
    
    
int[] frekvens = new int[6];
    
int x;
    
    
    for(
int i=0i<1000i++)
    {
    
d1.throwDice();
    
frekvens[x-1]+=1;
    }
    
    
double rel_freq;
        for(
int i=0<frekvens.lengthi++)
        {
        
rel_freq frekvens[i]/1000.0;
        
System.out.println((i+1) + ": " rel_freq);
        }
    
    
    
    
    }

__________________
Senast redigerad av Proton 2015-09-06 kl. 19:37.
Citera
2015-09-06, 18:38
  #6293
Medlem
Citat:
Ursprungligen postat av micke093
Är det någon som vet vad det är som kompilern klagar på med mina klasser och min main? Java verkar vara ett väldigt komplicerat språk att skriva i, blir alltid massa klagomål på dessa saker, eller har jag missat något bra knep på hur man kan tänka bara för att få det att fungera?

Den som har lust behöver bara pastea in koden i sin java-konsoll och titta var anmärkningarna kommer, säkert uppenbart för er skickliga men inte för amatörer som mig.



Du kan väl börja med att läsa själva felmeddelandet? Vad får du för fel när du försöker att kompilera?

EDIT:

Du måste antingen lägga in Dice i en separat fil eller deklarera den innuti DiceMain klamrarna, du kan inte ha en separat klass utanför den andra.

typ:

Kod:

public class Main {


   public static void main() {
      etc... din kod
   }

   public class Dice {

   }

}
__________________
Senast redigerad av negerbarnet 2015-09-06 kl. 18:42.
Citera
2015-09-06, 19:39
  #6294
Moderator
Protons avatar
Citat:
Ursprungligen postat av micke093
Har åtgärdat ett par fel i koden och den går nu att köra, däremot registrerar den inte talet man anger, oavsett vilket det är, här är den nya koden:
Kod:
package ovn4;
import java.util.Scanner;

public class 
Ovn4 {
   
    public static 
void main(String[] args) {
        
        
        
Scanner scan=new Scanner(System.in);
        
int burr=0;
        
int tal=0;
        
int check1;
        
        
System.out.println("Ange ett tal mellan 2-9");
        
        while(
check==1)
            
            
tal=scan.nextInt();
            if(
tal >&& tal <9)
            {
            
tal+=burr;
            
check 0;
            }
            else 
            {
            
System.out.println("Ange ett tal mellan 2-9!!");
            
check=1;
            }      
        
        for(
int i=0i<100i++)
            
            if((
burr) == 0)
            {
            
System.out.print("Burr ");
            }
            else if(
10 == burr)
            {
            
System.out.println("Burr");
            }
            else
            {
            
System.out.printf("%d "i);
            }
                   
    }
    

Din while kommer i nuläget bara köra koden som står på raden under den.

Anger du while, for eller if utan "måsvingar" kommer det endast påverka raden direkt under kommandot, ska du göra allt som står i koden måste denna omslutas med måsvingar.

Du vill troligen göra betydligt mer i din while än bara raden
Kod:
tal=scan.nextInt(); 
eller hur?
Citera
2015-09-07, 20:41
  #6295
Medlem
Jag vill använda min metod public boolean isEmpty() för att kolla ifall arrayen n i min konstruktor (public Queue) innehåller element eller inte, hur gör man detta? Här är en bild på koden:

https://gyazo.com/5eec1ba6e4eaa41adfb9de6b75e2a534

Ifall arrayen n innehåller element så vill jag att min boolean isEmpty metod ska returnera true, annars false. Har ni några idéer? Hur kan man i en metod kolla saker i andra metoder? Hur ser syntaxen ut?
Citera
2015-09-07, 21:26
  #6296
Medlem
Jag vill fylla en JTable med en lista av länder och huvudstäder. Jag skapar en array av Country och fyller den med objekt från en json fil. Genom att skicka med en referensvariabel av arrayen till klassen Data, som fyller arrayen med objekt. Men när jag ska använda den så får jag ett felmeddelande att arrayen är null.

Nu håller tålamodet på att brisera och hjärnblödningen är hotande nära.

Main:


Country:
Citera
2015-09-07, 22:05
  #6297
Medlem
Citat:
Ursprungligen postat av Boroshlawa
Jag vill fylla en JTable med en lista av länder och huvudstäder. Jag skapar en array av Country och fyller den med objekt från en json fil. Genom att skicka med en referensvariabel av arrayen till klassen Data, som fyller arrayen med objekt. Men när jag ska använda den så får jag ett felmeddelande att arrayen är null.

Nu håller tålamodet på att brisera och hjärnblödningen är hotande nära.

Har du testat att stega igenom din "parseJson" metod?


EDIT: och du borde ta dig en titt på Jackson eller Gson när det kommer till att parse:a json till pojos
__________________
Senast redigerad av negerbarnet 2015-09-07 kl. 22:13.
Citera
2015-09-07, 22:24
  #6298
Medlem
Citat:
Ursprungligen postat av negerbarnet
Har du testat att stega igenom din "parseJson" metod?


EDIT: och du borde ta dig en titt på Jackson eller Gson när det kommer till att parse:a json till pojos

Ja allt fungerar som det ska. Kör jag en forloop i Data klassen så skriver den ut alla värdena utan problem.
Citera
2015-09-07, 22:37
  #6299
Moderator
Protons avatar
Citat:
Ursprungligen postat av micke093
Jag vill använda min metod public boolean isEmpty() för att kolla ifall arrayen n i min konstruktor (public Queue) innehåller element eller inte, hur gör man detta? Här är en bild på koden:

https://gyazo.com/5eec1ba6e4eaa41adfb9de6b75e2a534

Ifall arrayen n innehåller element så vill jag att min boolean isEmpty metod ska returnera true, annars false. Har ni några idéer? Hur kan man i en metod kolla saker i andra metoder? Hur ser syntaxen ut?
Du och dina bilder, kan du inte göra som alla andra och posta koden här inom php eller codetaggar?

För att svara på frågan skulle du kunna iterera igenom arrayen och för varje steg kolla om värdet är skilt från null. Är det det returnerar du false annars returnerar du true.

Där är algoritmen, nu är det bara att koda. Skullle du fastna igen kanske du kan posta koden här istället för nån fjantig bild nån annanstans på nätet?
Citera
2015-09-07, 22:50
  #6300
Medlem
Jag kom runt problemet genom att lägga till en getCountrys metod i Data klassen. Men varför fungerar det inte att skicka en en referensvariabel till Dataklassen istället. Dom pekar ju på samma objekt, eller är jag dum i hela huvudet?

Kod:
public Country[] getCountrys(){
		return countrys;
	}
Citera

Stöd Flashback

Flashback finansieras genom donationer från våra medlemmar och besökare. Det är med hjälp av dig vi kan fortsätta erbjuda en fri samhällsdebatt. Tack för ditt stöd!

Stöd Flashback