C#跳过我的部分代码

时间:2014-10-09 23:28:12

标签: c#

嘿伙计们,我一直试图解决这个问题一段时间了。我是编程的新手,因为我目前正在大学(Cegep)参加我的第一次课程。 Visual Studio 2012似乎跳过我的代码的一部分,我需要在 rehaussement = Convert.ToChar(Console.Read())中输入1或2; 它没有提示我输入内容。我在调试部分没有错误,这是我的代码:`

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace ConsoleApplication1
{
    class Program
    {
        static void Main(string[] args)
        {
            //1464649 - Benjamin Lam
            int nbPhotos;
            char format;
            char reponse;
            char rehaussement;
            float prix;

            //Début

            Console.WriteLine("Entrez le nombre de photos que vous voulez développer :");
            nbPhotos = Convert.ToInt32(Console.ReadLine());
            Console.WriteLine("Quel format désirez-vous pour les photosÉ Entrez :");
            Console.WriteLine("p ou P pour petit format");
            Console.WriteLine("g ou G pour grand format");
            format = Convert.ToChar(Console.Read());
            Console.WriteLine("Désirez-vous un rehaussement pour les photos? Entrez: ");
            Console.WriteLine("o ou O pour oui");
            Console.WriteLine("n ou N pour non");
            reponse = Convert.ToChar(Console.Read());

            if ((reponse == 'o') || (reponse == 'O'))
            {
                Console.WriteLine("Quel type de rehaussement désirez-vous? Entrez");
                Console.WriteLine("1 pour noir");
                Console.WriteLine("2 pour sepia");
                rehaussement = Convert.ToChar(Console.Read());
            }
            else
            {
                rehaussement = '0';
            }
            //calcul du total a payer
            if (nbPhotos < 50)
            {
                if ((format == 'p') || (format == 'P'))
                {
                    prix = (nbPhotos * 0.15f);
                }
                else
                {
                    prix = (nbPhotos * 0.25f);
                }

                if (rehaussement == '1')
                {
                    prix = prix + nbPhotos * 0.75f;
                }
                else
                {
                    if (rehaussement == '2')
                    {
                        prix = prix + nbPhotos * 0.50f;

                    }

                }
            }

            else
            {
                if (nbPhotos <= 100)
                {
                    if ((format == 'p') || (format == 'P'))
                    {
                        prix = nbPhotos * 0.10f;
                    }
                    else
                    {
                        prix = nbPhotos * 0.20f;
                    }

                    if (rehaussement == '1')
                    {
                        prix = prix + nbPhotos * 0.75f;
                    }
                    else
                    {
                        if (rehaussement == '2')
                        {
                            prix = prix + nbPhotos * 0.50f;
                        }
                    }
                }
                else
                {
                    if ((format == 'p') || (format == 'P'))
                    {
                        prix = nbPhotos * 0.08f;
                    }
                    else
                    {
                        prix = nbPhotos * 0.16f;
                    }
                    if (rehaussement == '1')
                    {
                        prix = prix + nbPhotos * 0.50f;
                    }
                    else
                    {
                        if (rehaussement == '2')
                        {
                            prix = prix + nbPhotos * 0.25f;
                        }
                    }
                }

            }

            //affichage de resultat

            Console.WriteLine("Le nombre de photos développées est " + nbPhotos);
            if ((format == 'p') || (format == 'P'))
            {
                Console.WriteLine("Le format choisi est PETIT");
            }
            else
            {
                Console.WriteLine("Le format choisi est GRAND");
            }
            if (rehaussement == '1')
            {
                Console.WriteLine("Le rehaussemenet choisi est NOIR et BLANC");
            }
            else
            {
                if (rehaussement == '2')
                {
                    Console.WriteLine("Le rehaussement choisi est SEPIA");
                }
                else
                {
                    Console.WriteLine("Aucun rehaussement choisi");
                }
            }
            Console.WriteLine("Le prix à payer est" + prix + (" $"));
            //Fin
        }
    }
}

` 自从我去法国大学(Cegep)以来,我的大多数东西都是法语。 如果有人可以帮我解决这个问题,我将不胜感激。

2 个答案:

答案 0 :(得分:2)

尝试更改format = Convert.ToChar(Console.Read());以改为使用ReadLine。 原因是由于.Read没有结束输入流的行为 - 按照msdn(参见备注部分) http://msdn.microsoft.com/en-us/library/system.console.read(v=vs.110).aspx

答案 1 :(得分:1)

使用ReadLine()而不是Read():

format = Convert.ToChar(Console.ReadLine());