Java ohjelman pätkä

hermot menee

eli ohjelma tekee laskutoimituksia tai siis pitäisi tehdä..Koko eilisen päivän olen tätä tehnyt eikä vaan toimi..osaisikos joku vähän avittaa..

package tehtävä2;

import java.util.Scanner; //import lause skannerille

public class tehtävä2 //luokan nimi
{
   public static void main (String args[])
   
   {
      Scanner lukija = new Scanner(System.in); //tällä lausekkeella tuodaan skanneri
      //määritellään tarvittavat muuttujat
      boolean lopetus = false;
      int a = 0;
      int b = 0;
      int valinta = 0;
      int summa = 0;
      int syote = 0;
      short oikeat = 0;
      short vaarat = 0;
      
      

      // Ohjelma pyytää syöttämään luvun väliltä 1-3, jota jatketaan niin kauan
      //kunnes käyttäjä syöttää oikein
   
      do
      {
         System.out.println("*******LASKUOPE*********" "\n" "1 = YHTEENLASKUJA" "\n"
         "2 = VAHENNYSLASKUJA" "\n" "3 = LOPETUS" ); //tulostaa alkuvalikon, jossa näkee toiminnot
         valinta = lukija.nextInt();
                  
            if (valinta != 3) //tällä ehtolohkolla ohjelma suljetaan
            {
               if ( valinta == 1 ) //tällä ehtolohkolla ohjelma menee yhteenlaskuharjoituksiin
               {
            
                  for(valinta = 1; valinta

8

1303

    Vastaukset

    Anonyymi (Kirjaudu / Rekisteröidy)
    5000
    • koodaa2

      Mä voin tehdä tuon. Paljonko maksat?
      ps. On huono tapa laittaa kaikki roina mainiin.

      • opiskelija__

        Pieni harjotustyö ois tarjolla mutta sillä on tosi kiire. 100€ siitä saat jos kiinnostaa.
        mailaa: [email protected]


    • Mendelsson

      Sinulla on do, mutta missä on while? Tutkaileppa miten do-while rakenne toimii.

    • sekavaa

      Aikasta sekavaa koodia mut pikku viilauksilla sen saa toimimaan.
      Ensiksi katso miten do-while -looppin periaate. Jos on opetettu switch-case, käytä sitä. Jollei ole opetettu, niin mieti if-else -lauseiden rakenne.

      • hankalaa...

        kiitos vinkeistä ja huomasin do while rakenteessa ongelman..No nyt se sitten tulostaa konsoliin aloitus tekstin, mutta ei se mitään laske..Nyt tämä vasta hankalaksi meni kun ei edes tule mitään virheilmoituksia..Kun tämän teen en enään javaan koske...
        do
        {
        System.out.println("*******LASKUOPE*********" "\n" "1 = YHTEENLASKUJA" "\n"
        "2 = VAHENNYSLASKUJA" "\n" "3 = LOPETUS" ); //tulostaa alkuvalikon, jossa näkee toiminnot
        valinta = lukija.nextInt();
        }
        while (valinta != 3); //tällä ehtolohkolla ohjelma suljetaan
        {
        if ( valinta == 1 ) //tällä ehtolohkolla ohjelma menee yhteenlaskuharjoituksiin
        {

        for(valinta = 1; valinta


      • sekavaa
        hankalaa... kirjoitti:

        kiitos vinkeistä ja huomasin do while rakenteessa ongelman..No nyt se sitten tulostaa konsoliin aloitus tekstin, mutta ei se mitään laske..Nyt tämä vasta hankalaksi meni kun ei edes tule mitään virheilmoituksia..Kun tämän teen en enään javaan koske...
        do
        {
        System.out.println("*******LASKUOPE*********" "\n" "1 = YHTEENLASKUJA" "\n"
        "2 = VAHENNYSLASKUJA" "\n" "3 = LOPETUS" ); //tulostaa alkuvalikon, jossa näkee toiminnot
        valinta = lukija.nextInt();
        }
        while (valinta != 3); //tällä ehtolohkolla ohjelma suljetaan
        {
        if ( valinta == 1 ) //tällä ehtolohkolla ohjelma menee yhteenlaskuharjoituksiin
        {

        for(valinta = 1; valinta

        mietis vähän että mitä tuo do-while silmukka pyörittää.


      • sekavaa
        hankalaa... kirjoitti:

        kiitos vinkeistä ja huomasin do while rakenteessa ongelman..No nyt se sitten tulostaa konsoliin aloitus tekstin, mutta ei se mitään laske..Nyt tämä vasta hankalaksi meni kun ei edes tule mitään virheilmoituksia..Kun tämän teen en enään javaan koske...
        do
        {
        System.out.println("*******LASKUOPE*********" "\n" "1 = YHTEENLASKUJA" "\n"
        "2 = VAHENNYSLASKUJA" "\n" "3 = LOPETUS" ); //tulostaa alkuvalikon, jossa näkee toiminnot
        valinta = lukija.nextInt();
        }
        while (valinta != 3); //tällä ehtolohkolla ohjelma suljetaan
        {
        if ( valinta == 1 ) //tällä ehtolohkolla ohjelma menee yhteenlaskuharjoituksiin
        {

        for(valinta = 1; valinta

        Java on hyvä kieli alottaa/kokeilla ohjelmointia. Jos olet ohjelmoinut ennenkin niin tee tuosta ensin tutulla kielellä toimiva ohjelma ja mieti sen jälkeen et mitä teet erillailla (syntaksi ei tietenkään kuulu tähän:). Jos tämä ensinmäisiä ohjelmointitehtäviä, niin mieti mitä haluat ohjelman tekevän. Älä aloita kirjoittamista suoraan vaan hahmottele paperille/mielessäsi että miten ohjelma toimii. (tässä varsinkin kannattaa kun haluat käyttää if-lauseita).
        Todella harvoin ohjelmointikielessä on itsessään vikaa, sitä vain käytetään väärässä paikassa.
        PS. ja tämä ei ole väärä paikka:)


      • I.Proqatlis
        hankalaa... kirjoitti:

        kiitos vinkeistä ja huomasin do while rakenteessa ongelman..No nyt se sitten tulostaa konsoliin aloitus tekstin, mutta ei se mitään laske..Nyt tämä vasta hankalaksi meni kun ei edes tule mitään virheilmoituksia..Kun tämän teen en enään javaan koske...
        do
        {
        System.out.println("*******LASKUOPE*********" "\n" "1 = YHTEENLASKUJA" "\n"
        "2 = VAHENNYSLASKUJA" "\n" "3 = LOPETUS" ); //tulostaa alkuvalikon, jossa näkee toiminnot
        valinta = lukija.nextInt();
        }
        while (valinta != 3); //tällä ehtolohkolla ohjelma suljetaan
        {
        if ( valinta == 1 ) //tällä ehtolohkolla ohjelma menee yhteenlaskuharjoituksiin
        {

        for(valinta = 1; valinta

        Kyhäsin huvikseni rakenteellisemman ratkaisun tähän tehtävään.

        Tässä luokassa on mainin lisäksi kaksi metodia:
        oppilaan_valinta
        oppilaan_kuulustelu

        Mainista kutsutaan noita metodeja, kunnes oppilaan_valinta -metodissa valitaan ohjelman lopetus.

        oppilaan_valinta sisältää laskutavan valinnan. Tehty valinta palautuu main-metodiin, joka välittää sen edelleen oppilaan_kuulustelu -metodiin.

        oppilaan_kuulustelu hoitaa sekä yhteen- että vähennyslaskun käsittelyn saamansa parametrin avulla.

        --------------------------------------------------

        import java.util.Scanner; //import-lause skannerille


        public class Tentti { // luokan nimi
        static Scanner lukija;


        /* *** Metodi valinnan tekemiseen *** */

        private int oppilaan_valinta() {
        boolean valinta_OK = false;
        int valinta;

        /* *** Toista seuraavaa, kunnes hyväksyttävä vastaus on annettu *** */

        do {
        System.out.println("******* LASKUOPE *********");
        System.out.println("1 = YHTEENLASKUJA");
        System.out.println("2 = VAHENNYSLASKUJA");
        System.out.println("3 = LOPETUS");

        valinta = lukija.nextInt();

        if ( valinta == 1 || valinta == 2 || valinta == 3 )
        valinta_OK = true;
        }
        while ( valinta_OK == false );


        /* *** Ohjelma lopetetaan: *** */

        if ( valinta == 3 )
        System.exit(0);


        /* *** Tehty valinta palautetaan main-metodille: *** */

        return valinta;

        } // metodi oppilaan_valinta päättyy



        /* *** Metodi yhteen- ja vähennyslaskujen harjoitteluun *** */

        private void oppilaan_kuulustelu(int laskutapa) {
        char plusmiinus;
        short oikeat = 0;
        short vaarat = 0;
        int oikea_vastaus, oppilaan_vastaus, a, b;

        if ( laskutapa == 1 )
        plusmiinus = ' ';
        else
        plusmiinus = '-';


        for (int laskuri = 1; laskuri a ) {
        int jemma = a;
        a = b;
        b = jemma;
        }

        /* *** Tämän jälkeen on aina a >= b *** */

        oikea_vastaus = a - b;
        }

        System.out.println("Paljonko on " a plusmiinus b " ?");
        oppilaan_vastaus = lukija.nextInt();

        if ( oppilaan_vastaus == oikea_vastaus ) {
        oikeat ;
        System.out.println("Oikein!");
        }
        else {
        vaarat ;
        System.out.println("Vaarin!");
        }

        } // for-silmukka päättyy


        System.out.println("Oikeita vastauksia " oikeat " kpl");
        System.out.println("Vaaria vastauksia " vaarat " kpl");

        } // oppilaan_kuulustelu päättyy



        /* *** Ohjelman käynnistysmetodi main *** */

        public static void main (String huuhaa[]) {

        Tentti koe = new Tentti();

        lukija = new Scanner(System.in); // skanneri luodaan
        boolean tentti_menossa = true;
        int tehty_valinta;

        /* *** Pyöritä kuulustelua, kunnes oppilas kyllästyy... *** */

        while ( tentti_menossa == true )
        {
        tehty_valinta = koe.oppilaan_valinta();
        koe.oppilaan_kuulustelu(tehty_valinta);
        }

        } // main päättyy


        } // Luokka päättyy


    Ketjusta on poistettu 0 sääntöjenvastaista viestiä.

    Luetuimmat keskustelut

    1. Kenellä oli ryppyinen paita, josta Halla-aho mielensä pahoitti?

      Ei ollut Keskisarja, jonka paita vain repsotti housujen päällä puolittain. Muistatteko tapausta?
      Maailman menoa
      40
      3011
    2. Miksi Halla-aho on niin hyvin menestynyt - mutta punavihreä ei?

      Hyvin näkee kuinka punavihreää ottaa pahasti päähän kun Virta on taas töppäillyt pahasti. Ja kun punavihreä ei pärjää, n
      Maailman menoa
      35
      2238
    3. Ruoan arvonlisävero menee käytännössä tukijussille

      Ilman juomia elintarvikkeiden myynti vuonna 2025 oli reilut 15 miljardia euroa. Tuolla tasolla arvonlisävero pyörii pari
      Maailman menoa
      48
      2149
    4. Vihreät REPEÄMÄSSÄ oijoijoi....Virran sekoilut on liikaa

      Jo ennestään vihreiden kannatus on suossa vaikka puolue istuu oppositiossa, nyt tuli Virran temppu kun häipyi tuosta vaa
      Maailman menoa
      80
      2019
    5. Ruotsissa uusi vakava ongelma: Vanhusten seksuaalinen hyväksikäyttö

      palvelutaloissa ja kotihoidossa. Tämäkin on ihan puhtaasti väärän maahanmuuton vaikutusta, sillä tekijät ovat kaikki keh
      Maailman menoa
      54
      1737
    6. Poliisi tutkii keskiviikkoiltana Kiuruveden keskustassa tapahtunutta väkivallantekoa.

      Itä-Suomen poliisi tutkii Kiuruveden keskustassa keskiviikkoiltana tapahtunutta epäiltyä väkivallantekoa. Tapaus on herä
      Kiuruvesi
      16
      1472
    7. Työeläkkeiden maksaminen lopetettava ASAP.

      "Vanhimmat sukupolvet ovat saaneet vastinetta eläke­maksuilleen monin­kertaisesti nykyisiin ja tuleviin sukupolviin verr
      Maailman menoa
      57
      1469
    8. Mika Poutala salasi osallistumisensa Erikoisjoukkoihin

      Poutala ryhtyi ministeriksi 13.6.2025 ja 5.8.2025 ilmoitettiin hänen olevan seuraavalla Erikoisjoukot-kaudella. http
      Maailman menoa
      45
      1279
    9. Siis HYI OLKOON! Ihmiset, eikö enää ole mitään rajaa?

      https://www.iltalehti.fi/viihdeuutiset/a/4142eeb2-a589-4109-a5d0-e8f341df585c "Susanna Penttilän seksibussi kauhistutta
      Maailman menoa
      122
      1198
    10. Puuma Martina iski nuoren miehen

      Martina ja Hajji Muhis oikealta nimeltään Muhammad Abdilrasoon hempeilivät Tallinnassa. Hajji 28 vuotias ja Martina pian
      Kotimaiset julkkisjuorut
      160
      925
    Aihe