Witam.
Jestem bardzo poczatkujacym programista, przesiedzialem ponad dwie godziny szukajac na tym forum odpowiedzi na moje pytanie, i nie znalazlem, dlatego pisze.
Mieszkam zagranica i wszystkie wyklady sa po angielsku, ktory nie jest jeszcze u mnie najlepszy ,a zblizaja sie egzaminy wiec musze zrozumiec o co chodzi.
Wiec:
/*
tresc programu:
Write A program that will prompt the user to enter a sport (as a String,e.g. “basketball”), and will display the number of people needed
to form a team based on the table below:
Sport No.in Team
Basketball 5
Hurling, Rugby 15
Soccer, Cricket 11
Any other string Unknown sport.
*/
kod:
import java.util.*;
public class testing
{
public static void main (String args [])
{
Scanner keyIn= new Scanner (System.in);
int team=0;
String sport;
System.out.print("Enter discipline: ");
sport= keyIn.nextLine ();
if (sport== "basketball"){
team=5;
} if (sport=="hurling" || sport=="rugby"){
team=11;
} if (sport=="soccer"||sport=="cricket"){
team=15;
}
System.out.print ("to play "+sport+" you need "+team+" people");
//else
//System.out.print ("invalid sport");
W tej postaci kodu ostatnie dwa wersy sa odznaczone jako komentarz, bo jesli tego nie zrobie wyskakuje blad tego typu:
----jGRASP exec: javac -g testing.java
testing.java:28: error: 'else' without 'if'
else
^
1 error
----jGRASP wedge2: exit code for process is 1.
jesli natomiast zostana jako komentarz, program sie skompiluje i bedzie dzialal, tyle ze zmienna team bedzie caly czas przybierala wartosc 0. Dlaczego tak sie dzieje mimo ze w kazdej instrukcji if jest wskazane jaka to powinna byc wartosc.
dziekuje za pomoc i przepraszam za nie stosowanie sie do wskazowek dotyczacyh pisania tematów, bo po prostu nie do konca wiem jeszcze czym sa chociazby tagi :)
equals
. Ewentualnie (jeśli jesteś masochistą) zamień Stringi na tablice typuchar[]
i porównuj literę po literze.