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.