Terve
osaisko joku sanoa miten saan ton koodin palauttamaan suuremman arvon syötetyistä. Tossa on joku virhe, enkä millään löydä siihen toimivaa ratkaisua. Noi java-metodit on vielä vähän hämäriä mulle.
public static void main(String[] args) {
Scanner reader = new Scanner (System.in);
int x = 0;
int y = 0;
System.out.println("Type a number 1: ");
x = reader.nextInt();
System.out.println("Type a number 2: ");
y = reader.nextInt();
System.out.println("Bigger number is: " + Main.findBigger(z, 0));
}
public static int findBigger(int x, int y)
{
int z = 0;
if(x > y)
{
z = x;
}
else
{
z = y;
}
return z;
}
}Mitäs se valittaa?
Yksi mikä pisti silmään on se että kutsut metodia Main.findBigger. Ainakin C++:ssa olion omia metodeja pystyi kutsumaan ilman luokan nimeä joten pelkästään findBigger(...) riittäisi. Jos sulla taas olisi luokka B määriteltynä ja main funktiossa olisi siitä luotu olio tyyliin B munLuokka niin kutsuisit sen metodia juuri munLuokka.metodinNimi(). Voi tosin olla javassa toisin. En ole vähään aikaan javaan koskenut joten älkää hirttäkö jos tuo onkin oikein javassa :D
Samaten tuo funktiosi reagoi tällä hetkellä vain kahteen mahdollisesta kolmesta tapauksesta. Mites se reagoi jos x ja y onkin yhtä suuria?
Se valittaa tota: system.out.prinln.....(z,0)); : että z ei kelpaa tohon
Muuttujaa z ei ole määritelty main-metodissa. Main.findbigger(...) toimii, mikäli luokan nimi on Main — en sitten tiedä, onko se validi nimi. Halunnet syöttää tuossa findBiggerille x:n ja y:n?
ok kiitos vinkeistä. muutin vähän tota koodia. nyt se toimii.
public static void main(String[] args) {
Scanner reader = new Scanner(System.in);
int a = 0;
int b = 0;
System.out.println("Enter number a: ");
a = reader.nextInt();
System.out.println("Enter number b: ");
b = reader.nextInt();
int number = findBigger(a, b);
System.out.println("Bigger value is: " + number);
}
private static int findBigger(int x, int y) {
int z = 0;
if (x > y) {
z = x;
} else {
z = y;
}
return z;
}
}Aihe on jo aika vanha, joten et voi enää vastata siihen.