multiplicando variaveis

Tire suas dúvidas sobre programação em AutoHotkey

Moderator: Gio

cimerio
Posts: 44
Joined: 29 Apr 2019, 15:37

multiplicando variaveis

Post by cimerio » 28 Jan 2021, 09:39

bom dia, prezados. podem me ajudar indicando pq o codigo abaixo nao funciona?

Code: Select all

{
!w::

valor1 = 100
valor2 = (%valor1% * 100)
msgbox %valor2%

ele retona (100 * 100)
se eu coloco valor2 := (%valor1% * 100) não retorna nada, rs.

a meta é retornar 10000

User avatar
TheDewd
Posts: 1513
Joined: 19 Dec 2013, 11:16
Location: USA

Re: multiplicando variaveis

Post by TheDewd » 28 Jan 2021, 09:49

https://www.autohotkey.com/docs/commands/SetExpression.htm

:= :D

= :cry:

Code: Select all

#SingleInstance, Force

!w::
	Valor1 := 100
	Valor2 := (Valor1 * 100)
	MsgBox, %Valor2%
return

User avatar
Gio
Posts: 1247
Joined: 30 Sep 2013, 10:54
Location: Brazil

Re: multiplicando variaveis

Post by Gio » 28 Jan 2021, 11:02

Bom dia Cimerio.

Como o TheDewd bem demonstrou, você está utilizando o operador de expressões literais = (igual). Neste tipo de expressão, tudo é tratado como texto.

:arrow: O operador indicado para trabalhar expressões matemáticas é o := (dois-pontos-e-igual).

Outro ponto importante: quando você utilizar o operador de expressões matemáticas, não utilize %s para dereferenciar variáveis (basta colocar o nome da variável, pois em uma expressão matemática, o valor dos literais já é automaticamente dereferenciado sempre que eles não estejam entre aspas duplas).

Exemplo:

Code: Select all

!w::

valor1 := 100
valor2 := (valor1 * 100) ; Os parenteses nesse caso não são necessários. Eles só serviriam se você quisesse alterar a ordem de precedência dos cálculos em uma expressão matemática mais longa.
msgbox %valor2%

cimerio
Posts: 44
Joined: 29 Apr 2019, 15:37

Re: multiplicando variaveis

Post by cimerio » 28 May 2021, 09:52

obrigado, amigos

Post Reply

Return to “Ajuda e Suporte Geral”