Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

200
Visualizações
Cambiar el valor de la variable dentro de la declaración de cambio de golang
package main import "fmt" func main() { var i int = 10 switch true { case i < 20: fmt.Printf("%v is less than 20\n", i) i = 100 fallthrough case i < 19: fmt.Printf("%v is less than 19\n", i) fallthrough case i < 18: fmt.Printf("%v is less than 18\n", i) fallthrough case i > 50: fmt.Printf("%v is greater than 50\n", i) fallthrough case i < 19: fmt.Printf("%v is less than 19\n", i) fallthrough case i == 100: fmt.Printf("%v is equal to 100\n", i) fallthrough case i < 17: fmt.Printf("%v is less than 17\n", i) } }

Producción:

 10 is less than 20 100 is less than 19 100 is less than 18 100 is greater than 50 100 is less than 19 100 is equal to 100 100 is less than 17

¿Es este el comportamiento esperado?

over 4 years ago · Santiago Trujillo
2 Respostas
Responde à pergunta

0

La sentencia fallthrough transfiere el control a la primera sentencia del siguiente bloque de case .

La declaración fallthrough no significa continuar evaluando la expresión del siguiente case , sino comenzar incondicionalmente a ejecutar el siguiente bloque de case .

Citando del documento de declaración fallthrough :

Una declaración de "caída" transfiere el control a la primera declaración de la siguiente cláusula de caso en una declaración de "cambio" de expresión.

Citando del documento de declaración de switch :

En una cláusula de caso o por defecto, la última declaración no vacía puede ser una declaración "fallthrough" (posiblemente etiquetada ) para indicar que el control debe fluir desde el final de esta cláusula hasta la primera declaración de la cláusula siguiente. De lo contrario, el control fluye hasta el final de la instrucción "switch".

over 4 years ago · Santiago Trujillo Relatório

0

Sí lo es, como señaló icza.

Si no desea caer en todos los bloques de casos después del primero, elimine las líneas fallthrough (es como si no hubiera puesto una línea de break al final de cada bloque de casos de C/C++).

Y, como espera en los comentarios, la evaluación se realiza cuando se alcanza switch() , después de eso, no importa si cambia el valor i , no se evaluará nuevamente en cada bloque de casos.

over 4 years ago · Santiago Trujillo Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda