Jawa / Говнокод #27938 Ссылка на оригинал

0

  1. 1
  2. 2
  3. 3
  4. 4
  5. 5
  6. 6
  7. 7
  8. 8
  9. 9
  10. 10
  11. 11
  12. 12
  13. 13
  14. 14
  15. 15
  16. 16
  17. 17
  18. 18
  19. 19
  20. 20
  21. 21
  22. 22
  23. 23
  24. 24
  25. 25
  26. 26
  27. 27
  28. 28
  29. 29
  30. 30
  31. 31
  32. 32
  33. 33
  34. 34
  35. 35
  36. 36
  37. 37
  38. 38
  39. 39
  40. 40
  41. 41
  42. 42
  43. 43
  44. 44
  45. 45
import java.util.Scanner;

public class JavaApplication5 {

    public static void main(String[] args) {
        Scanner sw = new Scanner(System.in);
        System.out.print("Введите число: ");
        int week = sw.nextInt();
        System.out.println("The day is "+day);
    
}

class Month{
    
        String day;
        switch (int week) {
            case 1:
                day = "Monday";
                break;
            case 2:
                day = "Tuesday";
                break;
            case 3:
                day = "Wednesday";
                break;
            // match the value of week
            case 4:
                day = "Thursday";
                break;
            case 5:
                day = "Friday";
                break;
            case 6:
                day = "Saturday";
                break;
            case 7:
                day = "Sunday";
                break;
            default:
                day = "---";
                break;
        }
        
    }
}

Нужно чтобы от пользователя запрашивался номер дня недели, а получалось название. Не пойму, что не так. Помогите, пожалуйста, Добрые Люди

Запостил: 123AAAANNNAAA 123AAAANNNAAA, (Updated )

Комментарии (119) RSS

  • в америке неделя начинается с воскресенья... поправь
    Ответить
        • Ну да, ошмётки рефакторинга какие-то. Или просто чел так кусков надрал из кода когда выкладывал.

          Но весь нужный код тут есть, просто перепидорашен как-попало.
          Ответить
          • Мне кажется, тут человек только-только с линейным императивным кодом разобрался (даже без погружения в процедурное программирование), а его сразу в ООП окунают.
            Ответить
          • Да, похоже на рефакторинг. Сначала был линейный код, а потом автор решил применить ООП и запутался.
            Ответить
  • Ну из очевидного:

    - int в строке 16 явно лишний
    - весь код перепидорашен как попало, разберись в скобочках и порядке строчек

    А дальше я джаву не так хорошо знаю, чтобы без конпелятора что-то сказать.
    Ответить
  • В 8-й строке мы получаем week, а в 9-й строке запрашиваем day. Связи между week и day в методе main нет никакой.

    Эта связь есть в классе Month. Значит, в методе main нужно получить его экземпляр либо вызвать его статический метод.
    Ответить
    • > Значит, в методе main нужно получить его экземпляр либо вызвать его статический метод.
      Это язык Мордора, ему не надо звучать здесь.
      Ответить
    • Ща sed'ом пофиксим...

      10,14d;16s/int //;9{h;d};43G

      Вот и всё, а то классы какие-то, методы...
      Ответить
      • А то пишут, пишут… Класс, методы какие-то… Голова пухнет.

        Взять всё, да и поsedить…
        Ответить
      • перевожу:
        * с 10 по 14 строчку нахуй
        * на 16 строчке заменить "int " на ничего, сиречь тоже нахуй
        * девятую строчку покласть в буфер и удалить
        * из буфера высрать на 43-ю.

        Ничего не перепутал?

        Давай у нам в vim, там мы такое делаем регулярно, и без внешних седов
        Ответить
  • Блядь, как всё сложно… То ли дело «Python»:
    print('The day is', dict(enumerate('Monday Tuesday Wednesday Thursday Friday Saturday Sunday'.split())).get(int(input('Введите число: ')) - 1, '---'))
    Ответить
    • > dick(enumerate
      > get(int

      Блядь, как всё сложно… То ли дело «JS»:
      console.log('The day is', 'Monday Tuesday Wednesday Thursday Friday Saturday Sunday'.split(' ')[prompt("Введите число: ") - 1]||'---')
      Ответить
    • powershell:
      "The day is $((write Sunday Monday Tuesday Wednesday Thirsday Friday Saturday)[(Read-Host Введите число)] ?? '---')"
      Ответить
      • вчера как раз ебался с повершелом: как сделать однострочник для замены строки во всех файлах типа sed -i ?

        мне пришлось через dir *.foo | foreach { читать Get-Content, потом -replace и Set-Content
        Ответить
        • # создаём файлы для примера
          1..7 | % { "$(1..$_)" > $_ }
          #
           ls * | % { (gc $_) -replace '3', '33' | Out-File $_ }


          Алиасы: %, ls, gc = ForEach-Object, Get-ChildItem, Get-Content.

          Существует частая ошибка работы с файлами, в которой одновременно открываются потоки на чтение и запись, из-за чего файл обнуляется.
          Я сам до сих пор не понимаю, почему в некоторых ситуациях это происходит..
          Ай, мля... Я сейчас тут хотел про одно написать, а потом понял, что херню писал!

          Короче, в powershell есть такой прикол с передачей по конвееру:
          # создаст блокировку доступа к файлу, так как эта запись подразумевает построчную передачу данных от команда к команде по конвееру
          Get-Content file | Set-Content file
          # считает файл полность, поместит в буффер (массив строк) и передаст его следующей команде, файл перезапишется корректно
          (Get-Content file) | Set-Content file
          Ответить
          • спасибо, так лучше, правда кодировку еще нужно указать.

            надо бы прокачать скилл Psа: юниксовое sed/awk/trнутое говно я сразу чувствую, а с PS каждый раз напрягаюсь, хотя мог бы уже и привыкнуть (как я уже говорил, в современных виндах почти всё проще сделать через PS, чем через гуй)

            Поставить себе что ли Core на десктоп?)
            Ответить
            • Ты про powershell core? С 7-й версии это теперь снова powershell, но исполняемый файл теперь pwsh.exe.
              Я себе на домашний и рабочий ПК поставил уже давно pwsh 7.1 и кайфую.

              Юниксовые команды я не люблю, они часто сложные и называются хер пойми как. Предположим, я читаю чей-то код и вижу awk, но раньше с этой командой не сталкивался. Вот как из названия я должен понять, что оно делает!?
              В то же время в powershell командлеты принято называть в виде Глагол-Существительное, из-за чего я с большей вероятностью пойму предназначение функции по её имени.

              P.S. и за это я ненавижу людей, которые пишут в большом powershell коде сплошные алиасы и используют сплошь синтетический сахар, который портит понимание кода. Но для однострочников или интерактивной работы в консоли это допустимо.
              Ответить
              • > Предположим, я читаю чей-то код и вижу awk, но раньше с этой командой не сталкивался.
                > как из названия я должен понять, что оно делает

                А что даст название?
                awk совершенно обособленный тьюринг-полный скриптовый язык с особым синтаксисом.
                Ответить
                • Видимо, мощному ракушечнику было бы понятнее, если бы команда называлась Run-Aho-Weinberger-Kernighan-Script. Он бы сразу понял, что она делает и как ей пользоваться.
                  Ответить
                  • К чести ракушки, она компилитица с аргументам из коробки, ибо знает, какие там объекты.

                    Это правда круто, когда ты пишешь
                    Nasrat-Govna | where {$_.BristolScale -eq..}

                    и вот "BristolScale" у тебя комплитица прямо в командой строке.

                    Я буй знает, комплитица ли где-то awk (я его только в виме и писал)
                    Ответить
                  • > если бы команда называлась Run-Aho-Weinberger-Kernighan-Script.

                    Картина калом: ынтырпрайзной мрази, питающейся объедками жавашатни, выдали интерфейс командной строки.
                    Ответить
                • >awk совершенно обособленный тьюринг-полный скриптовый язык с особым синтаксисом.

                  Как и bc.
                  Как и m4.
                  Как и sh.
                  Как и sed.
                  Как и vimscript
                  Как и.. в общем в юниксе всё программируется
                  Ответить
              • Предположим, я читаю чей-то код и вижу «perl», но раньше с этой командой не сталкивался.
                Вот как из названия я должен понять, что оно делает!?
                Ответить
                • Предположим, я читаю чей-то код и вижу «fsc.exe»*, но раньше с этой командой не сталкивался.

                  Вот как из названия я должен понять, что оно делает!?

                  ---
                  * FSharp compiler. Микрософтовская программа, не какое-то прыщеговно.
                  Ответить
                • К слову, я тут решал сёмину задачу на чистом «Пауэршелле»:

                  https://govnokod.ru/25645#comment480357

                  Без чтения нескольких страниц документации у меня бы это не получилось. Там пришлось вызывать функции с неочевидными аргументами и неочевидными их значениями.
                  Ответить
                  • Потому что тебе не хватило кмдлетов, и ты полез в .NET.

                    Это как если бы тебе не хватило питона, и ты полез в сишный API операционки.
                    Или тебе не хватило бы этого в Jython, и ты полез в J2SE

                    PS конечно виноват в том, что в нем чего-то нету.
                    Но в том, что NET (как и J2SE) весьма увесистый фреймворк он не виноват.

                    Но вообще тебе тяжело было снепривычки. Будь ты .NET программистом последние десять лет, тебе было бы збс в PS
                    Ответить
                    • > Это как если бы тебе не хватило питона, и ты полез в сишный API операционки.

                      Поэтому я за Си - там сразу сишный API операционки.
                      Ответить
                      • Это как если бы тебе не хватило сишки, и пришлось бы делать асмовые вставки:)
                        Ответить
                          • Это как если бы тебе не хватило процессора, и пришлось бы делать свое железо
                            Ответить
                            • Это как если бы тебе не хватило материалов для процессора, и пришлось бы добывать из руды.
                              Ответить
                              • Это как если бы у тебя не было руды, и пригшлось бы делать свою планету
                                Ответить
                                • Это как если бы у тебя не было планеты и пришлось бы создавать вселенную с недельным дедлайном.
                                  Ответить
                                  • --Сколько займет сделать сайт?
                                    --Один день
                                    --Приступайте
                                    --Где его хостить?
                                    --У меня нет хостинга
                                    --В какой стране сделать хостинг?
                                    --Страны тоже нет
                                    --Ну где сделать страну? На земле?
                                    --Какой земли? Земли тоже нет
                                    --Ладно, заведем землю. Давайте галактику
                                    --Что это такое?

                                    Так и день прошел. Если кто делал мелкие нищебродские заказики урофня фриланс ру, то он поймет
                                    Ответить
                                      • Сначала заказчика убеждают представить себя воздушным ассом.

                                        Потом заказчика убеждают представить себя воздушной планетой.

                                        Потом эту планету принимают по учебнику, а на улице Герцена издают расщеплённый учебник.
                                        Ответить
                                        • Говорят, какая-то комета или планида идeт по улице! Цепляется атмосферой и проплывает по реке несколько километров, прежде чем превратиться в облако.

                                          Так учeные смотрели на небо в метроскоп и подсчитали всe точно по цифрам: в который день и в котором часу оно сядет на Мурманский полуостров. Это и будет переходом на новый энергетический уровень.
                                          Ответить
                                          • Четвертая планета принадлежала деловому человеку. Он был так
                                            занят, что при появлении Маленького принца даже головы не поднял.
                                            - Добрый день, - сказал ему Маленький принц. - Ваша папироса
                                            погасла.
                                            - Три да два - пять. Пять да семь - двенадцать. Двенадцать да
                                            три - пятнадцать. Добрый день. Пятнадцать да семь - двадцать два.
                                            Двадцать два да шесть - двадцать восемь. Некогда спичкой чиркнуть.
                                            Двадцать шесть да пять - тридцать один. Уф! Итого, стало быть, пятьсот
                                            один миллион шестьсот двадцать две тысячи семьсот тридцать один.
                                            Ответить
                          • Не, хуйня. Надо писать процессоры, притом не на каком-то убогом VHDL или Verilog, а на атомарном уровне! Или лучше через фермионы! Или что там еще более низкоуровневое есть, теория струн?
                            Ответить
                    • > не хватило кмдлетов, и ты полез в .NET
                      Так и задумано изначально, чтобы сами юзера расширяли.
                      Другое дело, что язычок получился говном и лепить такое было непопулярно, а сейчас и вовсе сошло на нет.
                      Ответить
                      • ну смотря для чего говном

                        Писать на нем приложения я бы не стал, а ковырять винду самое то, тем более это у MS теперь преферд вэй.

                        Двадцать лет мягкие ездили нам по ушам, что лучше всего любую задачу решить в сорок девять кликов мышкой, а потом вдруг резко поменяли концепцию
                        Ответить
                      • Да, была задумка в том, что если не хватает командлетов, то используешь мощности .NET, поэтому там достаточно простой доступ к .NET "штукам" (лень перечислять всё, что там можно).
                        А если прям красиво надо, то пожалуйста – создаёшь свои модули с командлетами, хоть на том же powershell, хоть на C#, это очень гибко.

                        > язычок получился говном
                        Ну не то, чтобы прям совсем говном, он просто другой и не похож на что-то другое. Скорее это смесь языков.. Я часто замечаю в powershell интересные особенности, некоторые документированы, некоторые просто возможны по факту, но не предусматривались. Если эта тема интересна, могу запостить топ говнокод конструкций.

                        > сошло на нет
                        Да, это так и это печально! ИМХО, это замечательный скриптовый язык с большим охватом, но складывается ощущение, что даже Майкрософт не хотят его продвигать и рекламировать. Его кроссплатформенность – отличный шаг вперёд, но пока что бессмысленный. Я не могу себе представить линуксоидов или макосников, которые бы по своей воли перешли бы на pwsh.
                        Ответить
                    • > Будь ты .NET программистом последние десять лет, тебе было бы збс в PS
                      Да, это так!
                      1. Раньше, чтобы потестить какие-то кодовые конструкции или работу определённых методов на C#, я создавал (или открывал готовый) проект и писал в нём всё, что хотел. Запускал, анализировал, повторял дальше.
                      2. Потом я начал использовать "окно интерпретации" в Visual Studio, это было не особо удобно.
                      3. Дальше я узнал про C# Interactive, это замечательный инструмент для интерактивной проверки кода. Им я пользуюсь до сих пор.
                      4. Когда я постиг powershell, то стал иногда пользоваться им для тех же целей – проверка кода в .NET среде. Пришло озарение того, что .NET не только один C#, но и много что ещё.
                      К счастью, powershell позволяет писать код в стиле C#, используя только .NET "штуки" без командлетов.
                      Ответить
              • >ы про powershell core?
                нет, я про виндовый кор сервер, когда гуя нет, а все в командлайне. Процентов восемьдесят задач можно делать на PS

                >Вот как из названия я должен понять, что оно делает!?

                Из повершела тоже не очень-то понятно. Спроси десять программистов что делает "Write-Host":)

                Но я предвзят: седы-авки я крутил когда еще в винде были .bat и WSH с WMI, так что просто привык.

                Хотя PS конечно большой шаг вперед по сравнению со всем этим
                Ответить
  • А теперь смотрим как это делается на цисгендерных языках
    %w(Sunday Monday Tuesday Wednesday Thirsday Friday Saturday)[ARGF.readline.to_i]

    и это если в локаль не лазить
    Ответить
  • Отменить STALKER 2

    vk​.​com/fem_power создал(а) эту петицию, адресованную GSC Game World

    Сталкер - это игра, пропагандирующая насилие, сексизм и убийства. Ни в одной из её прошлых частей нет женщин, представителей ЛГБТ или других меньшинств. Почти все игроки в сталкер излишне агрессивны, психически неуравновешенны, большинство из них оскорбляет женщин, ненавидит людей за их этническую или гендерную принадлежность, за сексуальную ориентацию. Из этого всего можно сделать вывод, что сталкер негативно влияет на неокрепшие умы подростков, которые составляют большую часть комьюнити этой игры. Если сталкер 2 выйдет, то ещё больше детей подвергнутся пропаганде и станут агрессивными сексистами и гомофобами, поэтому следует отменить выход этой игры.
    Ответить
      • Всё жду, когда, наконец, Милонов с Мизулина договорятся с ЛГБТ-активистами, чтобы вместе создать идеальную культуру отмены в отдельно взятой стране.
        Ответить
        • На ГК отменяли уёбков ещё до того, как это стало мейнстримом!
          Ответить
          • Пытались отменить, точнее. Потом пытались отменить тех, кто противился культуре отмены уёбков, также безуспешно. Именно поэтому я за говнокод.
            Ответить
            • Слабаки. Даже не попытались отменить тех, кто не смог отменить тех, кто противился культуре отмены уёбков. Даже до третьего шага рекурсии не дошли. Что уж там говорить о высших порядках.

              Ничего не могут, ничего не умеют. Всему их учить надо.
              Ответить
              • > Ничего не могут, ничего не умеют

                Дерьмо на палочке. Что они вообще, в меньшинствах делают?
                Ответить
        • У них много точек соприкосновения. Например угадай, в какой стране запретили стриптиз: в фемкиной стране, или в стране бородатых аллахакабрных скрепоносцев?

          Или кто из них считает, что за порнуху надо сажать?
          Ответить
    • Да не ссы, как показал первый сталкер, лет 10 он ещё не выйдет.

      > Ни в одной из её прошлых частей нет женщин, представителей ЛГБТ или других меньшинств
      О, помню историю про разработку одной игры. Была игра про белых цисгендерных уёбков, но это не современно и пришли они — woke разработчики. И сделали каждого мало-мальски важного персонажа меньшинством.
      Вот только игра про доведение оппонентов до самовыпила. В результате, мы хейтим и всячески унижаем всяческие меньшинства. Конец немного предсказуем — woke разработчики пересрались, кто более woke, и разошлись.
      Ответить
      • > В результате, мы хейтим и всячески унижаем всяческие меньшинства.
        JloJle4Ka бы поиграла.
        Ответить
    • А если лысых обезьян заменить волосатыми или петухами, то не понравится защитникам животных.

      Может быть, лучше сделать игру про рептилоидов?
      Ответить
      • Меченый и так одарёный рептилоид и все там такие, сюдя по сюжету, если никто не помнит его. А Сидор вообще мутант.
        Ответить
    • > vk​.​com/fem_power создал(а) эту петицию
      Разрабы проплатили этому говнопаблику пиар. Лучшая реклама — скандал.

      > Сталкер - это игра, пропагандирующая насилие, сексизм и убийства.
      Я уже дждесять лет хочу такую игру.

      > Ни в одной из её прошлых частей нет женщин, представителей ЛГБТ или других меньшинств.
      Лютая годнота. Надо покупать качать с торрентов.
      Ответить
  • И никто даже не догадался "day" вынести за скобки и сэкономить 3*7 батов. Говнокод уже не тот...
    Ответить
    • Сократил.
      import functools;(lambda d:lambda g:lambda i:f'The day is {[d,g][0<i<=7](i-1)}')(lambda _:'---')((lambda f:lambda i:f"{'MonTuesWednesThursFriSaturSun'[f(i):f(i+1)]}day")(lambda v:-round(functools.reduce(lambda x,y:(x[0]*v,x[1]+y*x[0]*v),(-5.5,5.5,-3.854,1.02,-9/80,1/240),(1,0))[1])))(int(input('Введите число: ')))


      В читаемом виде:
      import functools
      (lambda d:lambda g:lambda i:f'The day is {[d,g][0<i<=7](i-1)}')(lambda _:'---')(
          (lambda f:lambda i:f"{'MonTuesWednesThursFriSaturSun'[f(i):f(i+1)]}day")(
              lambda v:-round(reduce(lambda x,y:(x[0]*v,x[1]+y*x[0]*v),(-5.5,5.5,-3.854,1.02,-9/80,1/240),(1,0))[1])
          )
      )(int(input('Введите число: ')))


      «Python» — функциональный язык!
      Ответить
        • С использованием SSE4 пожалста
          Ответить
          • >day[8]
            нельзя тут 8 не хардкодить?
            Ответить
                • Можно, конечно. Административное решение, согласно ТРИЗ, оптимальнее технического.
                  Ответить
                  • раскрой мысль

                    можно прописать ответ в регламенте и вообще будет пустая прогоамма?
                    Ответить
                    • Если юзер сам может вспомнить название дня недели, то нафиг это программировать?
                      Ответить
                      • то есть просто не брать на работу людей, которые не умеют считать до семи?
                        Ответить
          • Оптимизировал
            // https://ideone.com/jlMXkK
            #include <stdio.h>
            #include <xmmintrin.h>
            
            int main(void) {
            	int day = 0;
            	scanf("%d", &day);
            	
            	char days[8][16] = {
            		"\0\0\0\0\0\0\0\0\0\0\0\0\0---",
            		"\0\0\0\0\0\0\0\0\0\0\0\0\0Mon",
            		"\0\0\0\0\0\0\0\0\0\0\0\0Tues",
            		"\0\0\0\0\0\0\0\0\0\0Wednes",
            		"\0\0\0\0\0\0\0\0\0\0\0Thurs",
            		"\0\0\0\0\0\0\0\0\0\0\0\0\0Fri",
            		"\0\0\0\0\0\0\0\0\0\0\0Satur",
            		"\0\0\0\0\0\0\0\0\0\0\0\0\0Sun",
            	};
            	char res[20] = "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0day";
            	
            	_mm_storeu_ps(res, _mm_loadu_ps(days + (day & 0x07)));
            	char *s = res + 10;
            	while (*s == '\0') ++s;
            	printf("%d -> %s\n", day, s);
            	
            	return 0;
            }
            Ответить
            • Надо было тогда через SSE и двигать на 24 шаффлить (сдвиг не прокатит) и приписывать "day"... А то циклы какие-то...
              Ответить
      • передайте питону, что обмазаться скобочками еще не значит стать похожим на lisp.
        Ответить
    • > "day" вынести за скобки и сэкономить 3*7 батов

      Тьфу, а я как раз зашёл это запостить.
      Ответить
  • А нук питушки, специальная оплимпиада. Задача:

    "Получить buildVersion винды стабильным, рекомендованным, документированным способом, не зависящим от работающего WMI сервиса"

    Задача сложнее, чем кажется
    Ответить
    • Так как олимпиада специальная, то и способ нужен специальный.

      1) Устанавливаем HKEY_CURRENT_USER\Control Panel\Desktop\PaintDesktopVersion в 1
      2) Вылогиниваем юзера
      3) После повторного логина захватываем рабочий стол
      4) Прогоняем изображение через какой-нибудь OCR

      Альтернатива:
      1) Запускаем WinVer
      2) Скриншотим
      3) Прогоняем через OCR

      Ещё одна альтернатива.
      1) Парсим выхлоп systemInfo. Бонусные очки за то, что отрабатывать он может больше минуты.
      Ответить
      • > PaintDesktopVersion в 1

        Спасибо! Раньше ради этого приходилось ключ не вбивать и активацию не проходить...
        Ответить
        • bginfo еще был, да

          но вообще пиратская винда и прада удобнее тем, что там из коробки рабочий стол нужного мне цвета, и полезная информация в правом нижнем углу

          вот бы еще она свистелки и придлеки отключала (раз ты не хочешь платить -- хуй тебе, а не плавно всплывающее меню, показывающее новости США) вообще бы цены не было
          Ответить
          • > пиратская

            А что в ней пиратского было? Скачана с официального сайта, кнопка "вобью ключ когда-нибудь позже" -- тоже официальная, никаких модификаций в код и настройки не вносилось.

            З.Ы. Емнип, там даже был вполне легальный и документированный способ вечно продлять триалку.
            Ответить
            • slmgr?
              он был не легальный, легально только 3 раза можно

              остальное да, с оф сайта и сейчас качается исошка
              Ответить
              • > с оф сайта и сейчас качается исошка

                Забавно, что с винды ты её хуй скачаешь, в отличие от прыщей. Вместо исошки будет качаться хреновина, которая её качает с инета и на флешку зарезает.
                Ответить
              • > легально только 3 раза можно

                А там уже и время переустановить шиндоуз придёт...
                Ответить
    • > работающего WMI сервиса
      Как будто анскилльным лалкам надо 24/7 манажировать свою винду.
      Ответить

Добавить комментарий для CHayT Отменить ответ

Где здесь C++, guest?!

    А не использовать ли нам bbcode?


    8