{"id":174,"date":"2023-11-14T19:28:21","date_gmt":"2023-11-14T22:28:21","guid":{"rendered":"https:\/\/difusao.tech\/blog\/?p=174"},"modified":"2023-11-14T19:28:22","modified_gmt":"2023-11-14T22:28:22","slug":"qual-a-diferenca-entre-while-e-do-while","status":"publish","type":"post","link":"https:\/\/difusao.tech\/blog\/qual-a-diferenca-entre-while-e-do-while\/","title":{"rendered":"Qual a diferen\u00e7a entre while e do while?"},"content":{"rendered":"<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full is-resized\"><img loading=\"lazy\" decoding=\"async\" width=\"793\" height=\"591\" src=\"https:\/\/difusao.tech\/blog\/wp-content\/uploads\/2023\/11\/image-1.png\" alt=\"\" class=\"wp-image-176\" style=\"width:516px;height:auto\" srcset=\"https:\/\/difusao.tech\/blog\/wp-content\/uploads\/2023\/11\/image-1.png 793w, https:\/\/difusao.tech\/blog\/wp-content\/uploads\/2023\/11\/image-1-300x224.png 300w, https:\/\/difusao.tech\/blog\/wp-content\/uploads\/2023\/11\/image-1-768x572.png 768w\" sizes=\"auto, (max-width: 793px) 100vw, 793px\" \/><\/figure>\n<\/div>\n\n\n<p>Indo direto ao ponto: <\/p>\n\n\n\n<p><strong>While:<\/strong> Executa o loop enquanto a condi\u00e7\u00e3o for verdadeira. <\/p>\n\n\n\n<p><strong>Do While:<\/strong> Executa o loop primeiro e depois verifica a condi\u00e7\u00e3o.<\/p>\n\n\n\n<p>Imagina o seguinte cen\u00e1rio, onde temos uma <strong>flag<\/strong>: Em programa\u00e7\u00e3o utilizamos flags como interruptor (isto \u00e9, valores 1\/0, ligado\/desligado, ativo\/inativo), verifica\u00e7\u00f5es r\u00e1pidas e simples.<\/p>\n\n\n\n<p>Se o usu\u00e1rio no banco de dados est\u00e1 com o status 0 ele \u00e9 inativo e n\u00e3o pode executar determinada tarefa na aplica\u00e7\u00e3o e o usu\u00e1rio com status 1 \u00e9 ativo e executar tal tarefa.<\/p>\n\n\n\n<p>Dentro do while fica a nossa tarefa; Agora vamos ver o resultado disso utilizando os dois m\u00e9todos.<\/p>\n\n\n\n<p><strong>WHILE<\/strong><\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>&lt;p id=\"demo\">&lt;\/p>\n\n&lt;script>\nlet text = \"\";\nlet i = 1;\nwhile (i &lt; 1) {\n  text += i++;\n  \n}\ndocument.getElementById(\"demo\").innerHTML = text;\n&lt;\/script><\/code><\/pre>\n\n\n\n<p>N\u00e3o ser\u00e1 exibido nada no paragrafo. <\/p>\n\n\n\n<p>No nosso exemplo acima, em um determinado momento o usu\u00e1rio foi setado para 1 na vari\u00e1vel que \u00e9 utilizada no teste do while, a saida n\u00e3o vai apresentar nada, pois o teste foi feito antes de entrar no while e como n\u00e3o passou no teste o while n\u00e3o recebeu o valor passado. <\/p>\n\n\n\n<p><strong>DO WHILE<\/strong><\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>&lt;p id=\"demo\">&lt;\/p>\r\n\r\n&lt;script>\r\nlet text = \"\";\r\nlet i = 1;\r\n\r\ndo {\r\n  text += i++;\r\n}\r\nwhile (i &lt; 1);  \r\n\r\ndocument.getElementById(\"demo\").innerHTML = text;\r\n&lt;\/script><\/code><\/pre>\n\n\n\n<p>Ser\u00e1 exibido o valor 1 no paragrafo.<\/p>\n\n\n\n<p>Agora o nosso exemplo com do while, ser\u00e1 executado o c\u00f3digo dentro do while para depois verificar se a condi\u00e7\u00e3o \u00e9 0 ou 1, sendo que a condi\u00e7\u00e3o j\u00e1 foi setada anteriormente como 1.<\/p>\n\n\n\n<p><\/p>\n\n\n\n<p>Se voc\u00ea n\u00e3o souber quantas intera\u00e7\u00e3oes ter\u00e1, utilize o while.<\/p>\n\n\n\n<p>Se voc\u00ea tem uma quantidade bem definida e por algum motivo voc\u00ea precise que seja executado ao menos uma vez, mesmo que a condi\u00e7\u00e3o seja verdadeira, utilize o do while.<\/p>\n\n\n\n<p>N\u00e3o se tem uma receita de bolo para utiliza\u00e7\u00e3o de um ou outro, tudo vai depender da l\u00f3gica da sua aplica\u00e7\u00e3o, a inten\u00e7\u00e3o do post \u00e9 perceber que temos que testar com outras op\u00e7\u00f5es para verificar como isso afeta a l\u00f3gica para melhor ou para pior, depende do que voc\u00ea est\u00e1 fazendo.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Indo direto ao ponto: While: Executa o loop enquanto a condi\u00e7\u00e3o for verdadeira. Do While: Executa o loop<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[3,30],"tags":[179,203,200,125,201],"class_list":["post-174","post","type-post","status-publish","format-standard","hentry","category-javascript","category-programacao-e-desenvolvimento","tag-desenvolvimento","tag-do-while","tag-javascript","tag-programacao","tag-while"],"_links":{"self":[{"href":"https:\/\/difusao.tech\/blog\/wp-json\/wp\/v2\/posts\/174","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/difusao.tech\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/difusao.tech\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/difusao.tech\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/difusao.tech\/blog\/wp-json\/wp\/v2\/comments?post=174"}],"version-history":[{"count":2,"href":"https:\/\/difusao.tech\/blog\/wp-json\/wp\/v2\/posts\/174\/revisions"}],"predecessor-version":[{"id":177,"href":"https:\/\/difusao.tech\/blog\/wp-json\/wp\/v2\/posts\/174\/revisions\/177"}],"wp:attachment":[{"href":"https:\/\/difusao.tech\/blog\/wp-json\/wp\/v2\/media?parent=174"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/difusao.tech\/blog\/wp-json\/wp\/v2\/categories?post=174"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/difusao.tech\/blog\/wp-json\/wp\/v2\/tags?post=174"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}