Kako da ispravim ovu gresku C#

poruka: 5
|
čitano: 1.462
|
moderatori: Lazarus Long, XXX-Man, vincimus
1
+/- sve poruke
ravni prikaz
starije poruke gore
14 godina
neaktivan
offline
Greska kod Inputa

 

 

using System;
public class Duzina
{
    private double duz;
    private const double NULA = 0;


    public double DUZ
    {
        set
        {
            duz = (value > NULA) ? value : 0;
        }

        get
        {
            return duz;
        }
    }
    public double toKilometar(double metar)
    {
        return metar / 1000;
    }
}


class Program
{
    public static void Main()
    {
        Duzina duzina = new Duzina();
        char izbor;
        char duzine;



        do
        {
            do
            {
                Console.WriteLine("1 Duzina");
                Console.WriteLine("2 Povrsina");
                Console.WriteLine("3 Izlaz");

               do
               {
                    izbor = (char)Console.Read();
               } while (izbor == '\n' | izbor == '\r');
            } while (izbor < '1' | izbor > '3');
       



        switch (izbor)
        {
            case '1':
                {
                
                    Console.WriteLine("DUZINA");
                    Console.WriteLine();
                    Console.WriteLine("1 Metar");
                    Console.WriteLine("2 Kilometar");
                    Console.WriteLine("3 Centimetar");
                    do
                    {
                        duzine = (char)Console.Read();
                    } while (duzine == '\n' | duzine == '\r');
                    switch (duzine)
                    {
                        case '1':                                                                        //GRESKA!!!
                            {
                                 duzina.DUZ = duzina.toKilometar(Convert.ToDouble(Console.ReadLine()));//Input string was not in a //correct format ,kako da ispravim ovu gresku
                                 Console.WriteLine(duzina.DUZ);
                            }
                            break;

                    }
                } break;
        }
    } while (izbor != '3');
      


     
    }
}

 
0 0 hvala 0
17 godina
moderator
offline
Kako da ispravim ovu gresku C#

Pa zadnji put sam ti napisao u cemu je problem! Kod onog problema s menijem! Stavi Console.ReadLine(); kojim neces traziti unos neceg, nego koji ce ti samo pocistiti Enter s buffera tipkovnice!

 

                   do
                    {
                        duzine = (char)Console.Read();
                    } while (duzine == '\n' | duzine == '\r');
                   
                    Console.ReadLine();
                   
                    switch (duzine)
                    {
                        case '1':                                                                        //GRESKA!!!
                            {
                                 duzina.DUZ = duzina.toKilometar(Convert.ToDouble(Console.ReadLine()));//Input string was not in a //correct format ,kako da ispravim ovu gresku
                                 Console.WriteLine(duzina.DUZ);
                            }
                            break;

                    }

 

Za ubuduce - i sam mozes provjeriti gdje je problem - mogao si provjeriti koji se broj pokusava konvertirati u Double - znaci:

 

string brojZaKonverziju = Console.ReadLine();

Console.WriteLine("Ovo je broj za konveriju: " + brojZaKonverziju);

 

Pa bi vidio u kojem grmu lezi zec, jer je string brojZaKonverziju prazan!

 
0 0 hvala 1
16 godina
neaktivan
offline
RE: Greska kod Inputa

Možeš svoj zadatak i na ovaj način možda riješiti(samo dio napisan ostalo možeš i sam po šablonu  :  

 

 

 public class Duzina
    {
        private double duz;
      
        public double DUZ
        {
            set
            {
                duz = (value > 0) ? value : 0;
            }

            get
            {
                return duz;
            }
        }
        public double toKilometar(double metar)
        {
            return (metar /  1000);
        }
    }

 

 

    class Program
    {
        static void Main(string[] args)
        {
            Duzina duzina = new Duzina();
            string unos = " ";
            string izbor = " ";
            do
            {

                Console.WriteLine("Unesite što želite ?");
                Console.WriteLine("1 Duzina");
                Console.WriteLine("2 Površina");
                Console.WriteLine("3 Izlaz");
             
                unos = Console.ReadLine();
                switch (unos)
                {
                    case "1":
                        Console.WriteLine("Duzina");
                        Console.WriteLine("Izaberite :  1 Metri");
                        Console.WriteLine("Unesite izbor: ");

                        izbor = Console.ReadLine();
                        switch (izbor)
                        {
                            case "1":
                                Console.WriteLine("Unesite metre : ");
                                duzina.DUZ = double.Parse(Console.ReadLine());
                                Console.WriteLine("Duzina u kilometrima {0} km .",
                                    duzina.toKilometar(duzina.DUZ));
                                break;


                        }
                        break;
                    case "2":
                        Console.WriteLine("Površina");
                        break;
                    case "3":
                        Console.WriteLine("Gotovo!");
                        break;
                }
            } while (unos != "3");

           
           

 


        }
    }

 

 

 

 

Private
14 godina
neaktivan
offline
Kako da ispravim ovu gresku C#

Hvala velika!!!

Necu vise sa glupim pitanjima forum zatrpavati pokusat cu sam rijesti

Pa ako nesto bas bude javim se

 
0 0 hvala 0
14 godina
neaktivan
offline
RE: Greska kod Inputa

kakvo elegantno rijesenje Private

Trebat ce mi dosta dosta iskustva i vremena da na ovakav nacin razmisljam.

Hvala za kod citljiv jednostavan i radi ono sto zelimSmijeh

 

 

 

 

 

1
Nova poruka
E-mail:
Lozinka:
 
vrh stranice