Jump to content

Why does my function give the same value as return?


Go to solution Solved by trancexx,

Recommended Posts

Dear Autoit scripters,

So here is my code, does anyone know why $bet in the consolewrite returns the value 350000. In the function i am doing some calculations. But it seems it does not put them in $bet?

Global $bet = 350000
Global $maxbet = 255000000
Global $onetime = True
Global $flag = True
Global $remember

bet($bet)
ConsoleWrite($bet & @CRLF)
bet($bet)
ConsoleWrite($bet & @CRLF)
bet($bet)
ConsoleWrite($bet & @CRLF)

Func bet($bet)
    If $onetime = True Then
        $remember = $bet
        $onetime = False
        $bet = $bet + $bet
    Else
        If $flag = True Then
            $bet = $remember + $bet
            $flag = False
        Else
            $bet = $bet + $bet
        EndIf
        
    EndIf
Return $bet
EndFunc   ;==>bet
Edited by Flum
Link to comment
Share on other sites

What's your function for?

UDF List:

 
_AdapterConnections()_AlwaysRun()_AppMon()_AppMonEx()_ArrayFilter/_ArrayReduce_BinaryBin()_CheckMsgBox()_CmdLineRaw()_ContextMenu()_ConvertLHWebColor()/_ConvertSHWebColor()_DesktopDimensions()_DisplayPassword()_DotNet_Load()/_DotNet_Unload()_Fibonacci()_FileCompare()_FileCompareContents()_FileNameByHandle()_FilePrefix/SRE()_FindInFile()_GetBackgroundColor()/_SetBackgroundColor()_GetConrolID()_GetCtrlClass()_GetDirectoryFormat()_GetDriveMediaType()_GetFilename()/_GetFilenameExt()_GetHardwareID()_GetIP()_GetIP_Country()_GetOSLanguage()_GetSavedSource()_GetStringSize()_GetSystemPaths()_GetURLImage()_GIFImage()_GoogleWeather()_GUICtrlCreateGroup()_GUICtrlListBox_CreateArray()_GUICtrlListView_CreateArray()_GUICtrlListView_SaveCSV()_GUICtrlListView_SaveHTML()_GUICtrlListView_SaveTxt()_GUICtrlListView_SaveXML()_GUICtrlMenu_Recent()_GUICtrlMenu_SetItemImage()_GUICtrlTreeView_CreateArray()_GUIDisable()_GUIImageList_SetIconFromHandle()_GUIRegisterMsg()_GUISetIcon()_Icon_Clear()/_Icon_Set()_IdleTime()_InetGet()_InetGetGUI()_InetGetProgress()_IPDetails()_IsFileOlder()_IsGUID()_IsHex()_IsPalindrome()_IsRegKey()_IsStringRegExp()_IsSystemDrive()_IsUPX()_IsValidType()_IsWebColor()_Language()_Log()_MicrosoftInternetConnectivity()_MSDNDataType()_PathFull/GetRelative/Split()_PathSplitEx()_PrintFromArray()_ProgressSetMarquee()_ReDim()_RockPaperScissors()/_RockPaperScissorsLizardSpock()_ScrollingCredits_SelfDelete()_SelfRename()_SelfUpdate()_SendTo()_ShellAll()_ShellFile()_ShellFolder()_SingletonHWID()_SingletonPID()_Startup()_StringCompact()_StringIsValid()_StringRegExpMetaCharacters()_StringReplaceWholeWord()_StringStripChars()_Temperature()_TrialPeriod()_UKToUSDate()/_USToUKDate()_WinAPI_Create_CTL_CODE()_WinAPI_CreateGUID()_WMIDateStringToDate()/_DateToWMIDateString()Au3 script parsingAutoIt SearchAutoIt3 PortableAutoIt3WrapperToPragmaAutoItWinGetTitle()/AutoItWinSetTitle()CodingDirToHTML5FileInstallrFileReadLastChars()GeoIP databaseGUI - Only Close ButtonGUI ExamplesGUICtrlDeleteImage()GUICtrlGetBkColor()GUICtrlGetStyle()GUIEventsGUIGetBkColor()Int_Parse() & Int_TryParse()IsISBN()LockFile()Mapping CtrlIDsOOP in AutoItParseHeadersToSciTE()PasswordValidPasteBinPosts Per DayPreExpandProtect GlobalsQueue()Resource UpdateResourcesExSciTE JumpSettings INISHELLHOOKShunting-YardSignature CreatorStack()Stopwatch()StringAddLF()/StringStripLF()StringEOLToCRLF()VSCROLLWM_COPYDATAMore Examples...

Updated: 22/04/2018

Link to comment
Share on other sites

Hi guinnes,

The function is ment to take a start integer, then multiply that by two, then add the start integer to that and from there i would like to multiply each time by two.

I'm testing the output with the function consolewrite, but it seems to returns 3 times 350000. 

I don't understand, why it is doing that.
Link to comment
Share on other sites

Because regardless of what your function does you are not using the returned value, only the global which is not modified.

You pass $bet to the function which becomes a local copy.

Edited by JohnOne

AutoIt Absolute Beginners    Require a serial    Pause Script    Video Tutorials by Morthawt   ipify 

Monkey's are, like, natures humans.

Link to comment
Share on other sites

Hi Trancexx & JohnOne

Byref is indeed working, is there any explanation why this will not work with globals? Johnone said i was not using the returned value. I thought i was doing that with

Return $bet

Also i thought once u define a variable as Global, it would work inside and outside functions? I know how to do it now, but i dont quite understand it. 

From the helpfile 

 

Global = Forces creation of the variable in the Global scope
Link to comment
Share on other sites

Global $bet = 350000
Global $maxbet = 255000000
Global $onetime = True
Global $flag = True
Global $remember

$bet = bet($bet)
ConsoleWrite($bet & @CRLF)
$bet = bet($bet)
ConsoleWrite($bet & @CRLF)
$bet = bet($bet)
ConsoleWrite($bet & @CRLF)

Func bet($bet)
    If $onetime = True Then
        $remember = $bet
        $onetime = False
        $bet = $bet + $bet
    Else
        If $flag = True Then
            $bet = $remember + $bet
            $flag = False
        Else
            $bet = $bet + $bet
        EndIf

    EndIf
Return $bet
EndFunc   ;==>bet

Edited by JohnOne

AutoIt Absolute Beginners    Require a serial    Pause Script    Video Tutorials by Morthawt   ipify 

Monkey's are, like, natures humans.

Link to comment
Share on other sites

Ace.

Also consider...

Global $bet = 350000
Global $maxbet = 255000000
Global $onetime = True
Global $flag = True
Global $remember

bet()
ConsoleWrite($bet & @CRLF)
bet()
ConsoleWrite($bet & @CRLF)
bet()
ConsoleWrite($bet & @CRLF)

Func bet()
    If $onetime = True Then
        $remember = $bet
        $onetime = False
        $bet = $bet + $bet
    Else
        If $flag = True Then
            $bet = $remember + $bet
            $flag = False
        Else
            $bet = $bet + $bet
        EndIf

    EndIf
Return $bet
EndFunc   ;==>bet

AutoIt Absolute Beginners    Require a serial    Pause Script    Video Tutorials by Morthawt   ipify 

Monkey's are, like, natures humans.

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
 Share

  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...