Prośba o sprawdzenie kodu w Java :)

0

Cześć,
Jestem bardzo początkujący i w ramach ćwiczeń postanowiłem napisać prostą gre-psychotest, niestety program nie chce się skompilować a ja nie mogę domyśleć się dlaczego. Bardzo proszę o pomoc. Za którą z góry dziękują równocześnie prosząc o wyrozumiałość.

import java.util.Scanner;
import javax.swing.*;
import java.io.*;
 
 
public class Koty
{
    Scanner odczyt = new Scanner(System.in); 
       public static void main(String[] args)
       {
 
              int wynik = 0;
              final int LiczbaPytan = 5;  
             System.out.println("Jak masz na imie?");
        String imie; 
 
                      imie = odczyt.nextLine();
        System.out.println("Kobieta czy Mezczyzna?");
             String plec; 
            plec = odczyt.nextLine();
            String m = "Mezczyzna"; 
 
                 if(plec.equals(m))
        {
         System.out.println("Witaj Panie "+imie);
                }
            else{
                System.out.println("Witaj Pani "+imie);
                    }
            }
 
              String[][] PiO = {
                                  {"Jaki jest twój ulubiony alkohol","wodka","religia nie pozwala","tajskie Piwo Singha"},
                                  {"Na wakacje pojedziesz","W Gory","Nad Moze","Za Granice"},
                                  {"Której Druzynie kibicujesz?","Chealse","Arsenal","Inter Mediolan"},
                                  {"Co najczesciej robisz wolnym czasie?","Spotykam sie z przyjaciolmi","Odpoczywam na Kanapie","Biore udzial w roznych eventach"},
                                  {"Z jakim typem ludzi najlepiej sie dogadujesz?","Takimi z fantazja","Spokojnymi","Otwartymi"} 
                        };
 
             int[] Odpowiedzi = new int[LiczbaPytan];
 
                       for(int x=0; x<LiczbaPytan; x++)
            {
                 System.out.println("\t\t"+(x+1)+". "+PiO[x][0]+"\n\n"
        +1+". "+PiO[x][1]+"\n"
        +2+". "+PiO[x][2]+"\n"
        +3+". "+PiO[x][3]);
 
                 Odpowiedzi[x] = odczyt.nextLine(); 
 
                 Odpowiedzi[x].toLowerCase();
 
                 switch(Odpowiedzi[x])
                 {
            case 1:
                     wynik+2;
            break;
            case 2:
            wynik+3;
            break;
                 }
 
         System.out.print("\n");
            }                                
 
            if(wynik<=5){
        System.out.println("Kot Sjamski");
            }
        else if(5<wynik<=10){
        System.out.println("Rosyjski Niebieski");
                }
        else if(10<wynik<=15){
        System.out.println("Kot Perski");
            }
 
 
       }  
 
}

Błąd kompilatora jest następujący:
Koty.java:42: error: illegal start of type
for(int x=0; x<LiczbaPytan; x++)
^
Koty.java:42: error: ')' expected
for(int x=0; x<LiczbaPytan; x++)
^
Koty.java:42: error: illegal start of type
for(int x=0; x<LiczbaPytan; x++)
^
Koty.java:42: error: <identifier> expected
for(int x=0; x<LiczbaPytan; x++)
^
Koty.java:42: error: ';' expected
for(int x=0; x<LiczbaPytan; x++)
^
Koty.java:42: error: > expected
for(int x=0; x<LiczbaPytan; x++)
^
Koty.java:42: error: '(' expected
for(int x=0; x<LiczbaPytan; x++)
^
Koty.java:65: error: illegal start of type
if(wynik<=5){
^
Koty.java:65: error: <identifier> expected
if(wynik<=5){
^
Koty.java:65: error: ';' expected
if(wynik<=5){
^
Koty.java:65: error: illegal start of type
if(wynik<=5){
^
Koty.java:65: error: <identifier> expected
if(wynik<=5){
^
Koty.java:65: error: ';' expected
if(wynik<=5){
^
Koty.java:66: error: illegal start of type
System.out.println("Kot Sjamski");
^
Koty.java:66: error: ';' expected
System.out.println("Kot Sjamski");
^
Koty.java:66: error: invalid method declaration; return type required
System.out.println("Kot Sjamski");
^
Koty.java:66: error: illegal start of type
System.out.println("Kot Sjamski");
^
Koty.java:68: error: class, interface, or enum expected
else if(5<wynik<=10){
^
Koty.java:70: error: class, interface, or enum expected
}
^
Koty.java:73: error: class, interface, or enum expected

                        }
                        ^
20 errors
0

Zamieszczam poprawioną wersje powyższego problemu.

import java.util.Scanner;
import javax.swing.*;
import java.io.*;


public class Koty
{
	Scanner odczyt = new Scanner(System.in); 
       public static void main(String[] args)
       {
            
              int wynik = 0;
              final int LiczbaPytan = 5;  
   	      System.out.println("Jak masz na imie?");
		String imie; 
      			
     				 imie = odczyt.nextLine();
		System.out.println("Kobieta czy Mezczyzna?");
 			String plec; 
			plec = odczyt.nextLine();
			String m = "Mezczyzna"; 
			
     			if(plec.equals(m))
		{
 		System.out.println("Witaj Panie "+imie);
   			 }
			else{
				System.out.println("Witaj Pani "+imie);
					}
			}
              
              String[][] PiO = {
                                  {"Jaki jest twój ulubiony alkohol","wodka","religia nie pozwala","tajskie Piwo Singha"},
                                  {"Na wakacje pojedziesz","W Gory","Nad Moze","Za Granice"},
                                  {"Której Druzynie kibicujesz?","Chealse","Arsenal","Inter Mediolan"},
                                  {"Co najczesciej robisz wolnym czasie?","Spotykam sie z przyjaciolmi","Odpoczywam na Kanapie","Biore udzial w roznych eventach"},
                                  {"Z jakim typem ludzi najlepiej sie dogadujesz?","Takimi z fantazja","Spokojnymi","Otwartymi"} 
						};
                                  
             int[] Odpowiedzi = new int[LiczbaPytan];
 
                       for(int x=0; x<LiczbaPytan; x++)
            {
                 System.out.print("\t\t"+(x+1)+". "+PiO[x][0]+"\n\n"
		+1+". "+PiO[x][1]+"\n"
		+2+". "+PiO[x][2]+"\n"
		+3+". "+PiO[x][3]);
                 
                 Odpowiedzi[x] = odczyt.nextLine(); 
      
                 Odpowiedzi[x].toLowerCase();

                 switch(Odpowiedzi[x])
                 {
			case 1:
                     wynik+2;
			break;
			case 2:
			wynik+3;
			break;
                 }

		 System.out.print("\n");
            }                                
    
            if(wynik<=5){
		System.out.println("Kot Sjamski");
			}
		else if(5<wynik<=10){
		System.out.println("Rosyjski Niebieski");
				}
		else if(10<wynik<=15){
		System.out.println("Kot Perski");
			}
            
 
       }
0

Nie wiem jak wkleić by się dobrze wyświetlało ;) Dodałem w załączniku błędy.

0

Specjalistą od javy to ja nie jestem, zaczynam tez dopiero naukę kupiłem sobie książkę przeczytałem może ze dwa rozdziały i stwierdzam ze straszną "pipiduwę" napisałeś :)

rozdział drugi mojej książki o tej linijce Scanner odczyt = new Scanner(System.in);

Podpowiada mi abyś wrzucił to do klasy main a nie tworzył obiekt przed nią znikną ci błędy dotyczące chyba referencji :)

I stwierdzam ze jak dojadę do rozdziału dotyczących tablic znalazł bym ten drugi error dotyczący tej linijki :)

int[] Odpowiedzi = new int[LiczbaPytan];

0

Nawiasy!!
Funkcja

public static void main(String[] args) 

kończy się przed wyrażeniem

String[][] PiO

.

0

kolejny powyższe dwa błędy rozwiązałem ale masz błąd również tutaj

Odpowiedzi[x] = odczyt.nextLine();

Eclipse podpowiada ze nie moze stringu konwertować na int więc zamień to na odczyt.nextInt();

pytanie jeszcze co oznacza twój "wynik+2" lub "wynik+3" w switch bo nigdzie nie deklarujesz tego a używasz

korzystasz wg z jakiegoś Eclipse lub netbansa?

0

a nie wspominając wg ze pogubiłeś klamry {} zacznij od instalacji Eclipse błagam :)

0

Hej,
Bardzo dziękuje za odpowiedzi, są dla mnie bardzo pomocne. :) Eclipse już się instaluje, korzystałem dotychczas z notatnika. ;)
"wynik" zadeklarowałem na samym początku.

Scanner odczyt = new Scanner(System.in); 
   public static void main(String[] args)
   {

          <del>int wynik = 0;</del>
          final int LiczbaPytan = 5;  
         System.out.println("Jak masz na imie?");
    String imie;
0

Przerwij instalacje Eclipse i zainstaluj InteliJ Idea, jak już instalować to coś porządnego.

0

Nie programuj niczego w notatniku. Takie podejście to jak pisanie książki - samodzielnie czerpiąc papier i ekstrahując kwas galusowy do domowej produkcji atramentu, całkiem niewarte. Dobre IDE (sugeruję IntellJa, ale w tym przypadku nawet przedwojenny netbeans będzie lepszym wyjściem niż notatnik). IDE sparuje Ci nawiasy, podkreśli większość literówek, wskaże sporo błędów i zaproponuje rozwiązanie, a czasami nawet zrefaktoruje kod.

0

Jedyne błędy które obecnie wyświetla kompilator dotyczą
tych wyników w switch

 switch(Odpowiedzi[x])
                 {
            case 1:
                     wynik+2;
            break;
            case 2:
            wynik+3;
            break;
                 }

;
Czy wiecie może dlaczego to nie działa?

0

not a statement
wynik+2
not a statement
wynik+3

0

Bardzo dziękuję za pomoc :)
przepraszam ,że męczyłem was takimi trywialnymi problemami. :) Jak wspomniałem jestem bardzo bardzo początkujący. ;)

0

Pisałem już mu ze zmienna wynik jest poza {} gdzie jest switch stąd nie widać "wynik" w case :P
tak mi się bynajmniej wydaje

0

Źle Ci się wydaje.

wynik = wynik + 3;
//albo
wynik+=3;

1 użytkowników online, w tym zalogowanych: 0, gości: 1