솔직히 말해서 약간의 방귀가 있었기 때문에 이것이 간단한 대답으로 간단한 질문이라면 사과드립니다!
타이머를 통해 시간이 지남에 따라 + (가능하면 마이너스 (자연적으로 변동될 수 있도록))만큼 값이 증가하는 정수를 만들려고합니다. 이것은 내 현재 코드입니다.
If timer_temp_int = 0 Then
timer_temp.Enabled = False
lblRemaining.Text = "0"
MsgBox("Please check the temperature of the heater")
Else
'PROBLEM HERE
Dim temp2 As Decimal
temp2 = temp += 0.01
txt_temp.Text = temp
timer_temp_int -= 1
End If
그래서 제가 한 것은 온도를 높일 수 있도록 두 번째 변수를 할당 한 것입니다 (이 btw는 임의 배열에서 가져옴)
Dim rn As New List(Of Integer)
Dim temp As Integer
Dim rnd As New Random
rn.Add(80)
rn.Add(90)
rn.Add(100)
rn.Add(110)
rn.Add(120)
Dim randomValue As Integer = rn(rnd.Next(0, 5))
temp = randomValue.ToString()
코드를 추가했습니다.
Dim temp2 As Decimal
temp2 = temp += 0.01
txt_temp.Text = temp
그러나 이것은 "예상 된 진술의 끝"을 얻는 것처럼 문제인 것 같습니다. 60 초 타이머의 매초마다 +/- 0.01만큼 변동 (가능하면 걱정할 필요는 없지만 무작위로)하는 방법이 있습니까? 그 이유는 온도 응용 프로그램을 할당으로 만들고 있기 때문에 응용 프로그램이 자연 온도 변동을 시뮬레이션하기 위해 실행될 때 온도가 +/- 0.01만큼 변동해야합니다.
원래 게시 된 질문의 경우 오류 메시지는 다음의 결과입니다.
temp2 = temp += 0.01
이것은 두 문장을 결합하려고합니다.
temp += .01
temp2 = temp
더 큰 질문의 경우이 코드는 각 초기 값이 변동하도록 허용해야합니다. 각각이 독립적으로 수행해야하는지 모르겠으므로이 부분을 변경해야 할 수도 있습니다.
' form level vars:
Private RNG As Random()
Private currVals As Decimal() = {80D, 90D, 100D, 110D, 120D}
Private TBs As TextBox()
그런 다음 양식로드에서 TB 어레이를 초기화합니다.
TBs = {TextBoxA, TextBoxB, TextBoxC, TextBoxD, TextBoxE}
RNG = New Random()
이제 타이머 틱 등에서 호출 할 수있는 루프에서 기본 값을 변경할 수 있습니다. TextBox
배열 코드 루프의 표시를 갱신 할 수 있도록 유일하게되면, 값은 순차적으로 매핑 될 수있는 외부 루프 :
For n As Int32 = 0 To currVals.Length - 1
' next bool is an extension; same as RNG.Next(0,2)
If RNG.NextBoolean() Then
currVals(n) += 0.01D
Else
currVals(n) -= 0.01D
End If
TBs(n).Text = currVals(n).ToString() ' update display
Next
UI 컨트롤은 특히이 경우에 끔찍한 변수입니다. 텍스트 컨트롤에는 문자열이 포함되어 있으며 소수로 작업하고 있습니다. 코드는 배열 값을 변경하고 (이 컨트롤을 업데이트 그래서 것 같다 당신이 후에 무엇처럼).
변경 사항이 모든 값에 대해 동일해야하는 Boolean
경우 루프 외부에서 하나를 선택 하십시오. NextBoolean
확장 방법이며 긴 형식은 다음과 같습니다.
Dim thisVal = RNG.Next(0, 2) ' pick from 0 to 1
If thisVal = 0 Then
' add
Else
' subtract
End If
또는:
<Extension>
Public Function NextBoolean(RNG As Random) As Boolean
Return RNG.NextDouble() >= 0.5
End Function
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다