Pereiti prie turinio

Java kodo neaiskumas.


Rekomenduojami pranešimai

Sveiki,kokia komanda naudot,kad ivedus i operation laukeli 3.1 ar 3.2... nemestu error?O "operation" kintamojo negaliu pakeist i double,nes switch komanda tik int leidzia. :/

 

switch(operation){

case 1:

answer = fnum + snum;

break;

case 2:

answer = fnum - snum;

break;

case 3:

answer = fnum * snum;

break;

case 4:

answer = fnum / snum;

break;

default:

System.out.println("");

System.out.println("You chose neither.");

break;

}

 

System.out.println("");

 

if (operation != 1 || operation !=2 || operation !=3 || operation !=4 || operation !=5){

System.out.println("ERROR: Operation can not be identified.");

}else{

System.out.println("The answer is " + answer + ".");

input.close();

}

}

}

Redagavo arvydas999
Nuoroda į pranešimą
Dalintis kituose puslapiuose

prieš tai pateiktas 'sauliuzz' atsakymas yra neteisingas. Susiskurt masyvą su visais įmanomais realiaisias skaičiais, kuriuos naudotojas gali įvesti, pvz 3.1265778567. Seriously ?

 

Sprendimas. yra keletas variantų. Kaip suprantu operantion yra double tipo ?Jei Tau nesvarbi dalis po kablelio gali padaryti tiesiog taip:

 

switch((int)operation){

čia yra 'castinimas' ir dalis po kablelio bus nukirpta tiesiog, tai pvz: 3.2 patamps 3; 3.9 pataps irgi 3.

 

Bet jei nori, kad įvedus skaičių su kableliu Tavo programa mestų tą "ERROR: Operation can not be identified." tai gali papildomai pridėti tokį 'if' padaryti taip:

 

if (operation % (int) operation == 0) {

// cia tas Tavo switch blokas:

switch((int)operation){

....

}

 

 

if (operation != 1 && operation !=2 && operation !=3 && operation !=4 && operation !=5){ // cia neteisingai buvo, reikia naudoti '&&'

System.out.println("ERROR: Operation can not be identified.");

}else{

System.out.println("The answer is " + answer + ".");

}

 

// ir resursų uždarymą reiktų iškelti, tai yra uždaryti inputStream objektą visada, nepriklausomai ar įvesties duomenys geri ar blogi. nebent Tu jį vėliau uždarysi, kuo aš abejoju.

input.close();

Redagavo gretutes
Nuoroda į pranešimą
Dalintis kituose puslapiuose

Susikurk masyvą su visom reikšmėm 3.1, 3.2, 3.3,.. ir per ciklą tikrink ar nėra lygu tai reikšmei.

Aciu,bandysiu :)

 

prieš tai pateiktas 'sauliuzz' atsakymas yra neteisingas. Susiskurt masyvą su visais įmanomais realiaisias skaičiais, kuriuos naudotojas gali įvesti, pvz 3.1265778567. Seriously ?

 

Sprendimas. yra keletas variantų. Kaip suprantu operantion yra double tipo ?Jei Tau nesvarbi dalis po kablelio gali padaryti tiesiog taip:

 

switch((int)operation){

čia yra 'castinimas' ir dalis po kablelio bus nukirpta tiesiog, tai pvz: 3.2 patamps 3; 3.9 pataps irgi 3.

 

Bet jei nori, kad įvedus skaičių su kableliu Tavo programa mestų tą "ERROR: Operation can not be identified." tai gali papildomai pridėti tokį 'if' padaryti taip:

 

if (operation % (int) operation == 0) {

// cia tas Tavo switch blokas:

}

 

 

if (operation != 1 && operation !=2 && operation !=3 && operation !=4 && operation !=5){ // cia neteisingai buvo, reikia naudoti '&&'

System.out.println("ERROR: Operation can not be identified.");

}else{

System.out.println("The answer is " + answer + ".");

input.close();

}

 

Labai dekui,butent to ir ieskojau! :D

Nuoroda į pranešimą
Dalintis kituose puslapiuose

Prisijunkite prie diskusijos

Jūs galite rašyti dabar, o registruotis vėliau. Jeigu turite paskyrą, prisijunkite dabar, kad rašytumėte iš savo paskyros.

Svečias
Parašykite atsakymą...

×   Įdėta kaip raiškusis tekstas.   Atkurti formatavimą

  Only 75 emoji are allowed.

×   Nuorodos turinys įdėtas automatiškai.   Rodyti kaip įprastą nuorodą

×   Jūsų anksčiau įrašytas turinys buvo atkurtas.   Išvalyti redaktorių

×   You cannot paste images directly. Upload or insert images from URL.

Įkraunama...
  • Dabar naršo   0 narių

    Nei vienas registruotas narys šiuo metu nežiūri šio puslapio.

×
×
  • Pasirinkite naujai kuriamo turinio tipą...