Верен ли мой код? Что еще я могу улучшить
Я не люблю наводнять форумы, такие как CodeProject, ненужными вопросами, но поскольку я новичок и пытаюсь научиться кодировать, мне нужен кто-то, кто поможет мне и проверит мои коды. И для этого я не мог найти места больше, чем CP.
Но было бы очень хорошо, если бы кто-то мог пройти через этот вопрос и код, который я написал, и указать на то, что я мог бы улучшить в нем. Я подробно рассказал о том, что делает каждая строка в коде.
Я написал следующий код c# для преобразования десятичного числа в двоичное.
using System; namespace Ch6ExQ16 { class Program { static void Main(string[] args) { Console.Write("Enter the number: ");// THE NUMBER TO BE ENTERED FOR CONVERTING TO BINARY int num = int.Parse(Console.ReadLine());// PARSING OF NUMBER int[] revArr = new int[8];// SET THE ARRAY EQUAL TO THE SIZE OF A BYTE I.E. 8BITS bool onlyOnceTrue = true;// THIS IS USED SO THAT THE NESTED SECOND FOR LOOP (CHILD LOOP) DO NOT GO INTO LOOPING CYCLES MORE THEN ONCE // BECAUSE IF IT DOES THEN THAT WILL RESULT IN THE ARRAY (REVARR) GIVEN ABOVE TO FILL ONLY ONE VALUE OF REM IN ALL ITS ELEMENTS I.E. THE VALUE CALCULATED DURING 1ST ITERATION OF THE ORIGINAL PARENT LOOP // AND ONLY AFTER FILLING THE COMPLETE BYTE (ARRAY) IT WILL ALLOW THE FIRST, PARENT FOR LOOP TO DO FURTHER CALCULATIONS WHICH THEN WILL BE USELESS AS OUR ARRAY WOULD HAVE BEEN FULL WITH REPEATED VALUES OF REM int index = -1;// THIS IS USED SO THAT THE VALUE IN THE CHILD FOR LOOP WHILE REVERSING THE ARRAY AND INITIALISING IT WITH CORRECT REM VALUE REMAINS SYNCRONISED WITH THE CORRESPONDING INDEX // IT IS USEFUL FOR THIS SENTENCE ((revArr[revArr.Length - index - 1] = rem;)) for (int quot = num; quot > 0;)// THIS IS THE 1ST LOOP OR THE PARENT LOOP { int rem = quot % 2; quot /= 2; onlyOnceTrue = true;// THIS RESETS THE VALUE OF ONLYONCETRUE BACK TO TRUE WHICH WAS PREVIOUSLY CHANGED FROM TRUE TO FALSE IN THEE 2ND LOOP GIVEN BELOW // THIS RELATES TO THE EXPLANATION GIVEN ABOVE ABOUT DISABLING THE 2ND FOR LOOP TO GO INTO LOOPING CYCLES for (index++; onlyOnceTrue == true;)// THIS IS THE CHILD LOOP OR THE 2ND LOOP { revArr[revArr.Length - index - 1] = rem; // THIS IS USED SO THAT THE ARRAY IS INITIALISED FROM THE LAST INDEX TO THE FIRST I.E. IN REVERSE ORDER// THE FIRST REM VALUE CALCULATED WILL BE PUT IN THE LAST INDEX OF THE ARRAY // THIS KEEPS ON DECREASING THE INDEX NUMBER TILL IT REACHES ZERO '0' onlyOnceTrue = false; // AFTER THIS LOOP RUNS ONCE THIS VALUE WILL KEEP IT FROM RUNNING AGAIN AS IT CHANGES THE ONLYONCETRUE TO FALSE AND THUS THE EXECUTION GOES BACK TO THE FIRST LOOP } } for (int i = 0; i < revArr.Length; i++) // THIS IS A COMMON FOR LOOP THAT IS USED TO PRINT THE VALUES OF ARRAY { Console.Write(revArr[i]); } Console.WriteLine(); } } }
Что я уже пробовал:
Любой ответ будет очень признателен.. И если кто-то может указать мне на какую-то ссылку или форум, где я могу поделиться своим будущим кодом для обзора, это будет большим подспорьем. :-)
И любое предложение по улучшению читабельности моих кодов также будет полезно. Поскольку в настоящее время я чувствую, что дал слишком много информации, которую тоже трудно понять.
Заранее спасибо.. :-)
Afzaal Ahmad Zeeshan
Обзоры кода, как правило, не по теме, так как нет "одного правила", чтобы сделать его лучше.