मैं C# में एक नौसिखिया हूं और मैं वर्तमान में एक एटीएम कंसोल लिख रहा हूं जहां ग्राहक: 1 - चेक अकाउंट बैलेंस 2 - पैसा निकालना 3 - भुगतान करना 4 - बाहर निकलने के लिए क्यू दबाएं मैं दूसरे विकल्प पर फंस गया क्योंकि यदि उपयोगकर्ता एक उच्च में प्रवेश करता है खाता शेष राशि से अधिक, मैं चाहता हूं कि सी # प्रश्न को तब तक दोहराएं जब तक कि उसे उपयोगकर्ता से वैध उत्तर न मिल जाए। मैंने डू-लूप लूप का उपयोग किया लेकिन मैं अभी भी इसे सही तरीके से प्राप्त करने में कामयाब नहीं हुआ मेरा कोड

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

namespace ATM
{
    internal class Program
    {
        
        static void Main(string[] args)
        {
            
            Console.WriteLine("Welcome to Barclays, please choose one of the options",
           "/n 1 - Check Account Balance",
           "/n 2 - Withdraw Money" +
           "/n 3 - Paying In" +
           "/n 4 - Press Q to exit");
            string optionChosen = Console.ReadLine(); 
            int costumerBalance = 5000;
            switch (optionChosen)
            {
                case "1":
                    Console.WriteLine("Your balance is " + costumerBalance);
                    break;
                case "2":
                    Console.WriteLine("Please enter the amount you would like withdraw: ");
                    int amountEntered = Convert.ToInt32(Console.ReadLine());

                if(amountEntered > costumerBalance)
                    do
                    {
                        Console.WriteLine("Insufficent balance please enter another amount: ");
                        amountEntered++;
                       

                    }while(amountEntered < 5);

                else
                    {
                        Console.WriteLine("Your new balance is " + (costumerBalance - amountEntered));
                    }

                        break;

                case "3":
                    Console.WriteLine("Pleas enter the amount you would like to pay in: ");
                    int amountPaidIn = Convert.ToInt32(Console.ReadLine());
                    Console.WriteLine("Your new balance is " + (costumerBalance + amountPaidIn));
                    break;

                case "4":
                    Console.WriteLine("Thank you, have a nice day");
                    
                    break;
                    
                default:
                    Console.WriteLine("Please enter a valid name");
                    break;
            }

            Console.ReadKey();
        }

       
 }

}

c#
0
Hlyztrk87 26 जिंदा 2022, 13:30
स्वागत। आपके लूप में आप उस हिस्से को याद कर रहे हैं जहां उपयोगकर्ता को अपनी राशि फिर से डालनी है। अभी आप संदेश को प्रिंट कर रहे हैं। साथ ही, amountEntered++; वास्तव में उपयोगी नहीं लगता - आप लूप से बाहर निकलना चाहते हैं जब amountEntered < costumerBalance, तब नहीं जब amountEntered > 5
 – 
imsmn
26 जिंदा 2022, 13:35

1 उत्तर

सबसे बढ़िया उत्तर

यहाँ एक समाधान है।

आपको पूरे केस स्टेटमेंट लॉजिक में लूप करना होगा। मुझे यह भी सुनिश्चित नहीं है कि राशि का उपयोग क्या है ++ दर्ज किया गया है? इसलिए मैंने यह पता लगाने के लिए एक बूलियन का उपयोग किया है कि क्या राशि मान्य है और इसका उपयोग डू जबकि लूप में स्थिति के रूप में किया जाता है।

case "2":
    bool validAmount = true;
    do
    {
        Console.WriteLine("Please enter the amount you would like withdraw: ");
        int amountEntered = Convert.ToInt32(Console.ReadLine());

        if(amountEntered > costumerBalance)
        {
            Console.WriteLine("Insufficent balance please enter another amount:");
            validAmount = false;
        }
        else
        {
            Console.WriteLine("Your new balance is " + (costumerBalance - amountEntered));
        }
    } while(!validAmount);
    break;
0
Ryan Thomas 26 जिंदा 2022, 13:39
धन्यवाद रयान, आपका समाधान बहुत मददगार रहा है। मेरा कंसोल अब काम करता है। मैं अभी भी लूप के साथ बूलियन मूल्यों को सम्मिश्रण करने में बहुत अच्छा नहीं हूं।
 – 
Hlyztrk87
26 जिंदा 2022, 13:48