Gå til innhold

Nybegynner spørsmål angående If-Else


Anbefalte innlegg

Hei.

 

Jeg holder på med et program som skrives i Visual Basic .NET. Jeg er helt nybegynner på område.

 

Jeg har en if setning som inneholder en hel haug if-elseif-else.

 

En av dem kan f.eks. se slik ut:

 

If (A.value = true and B.value <> 0 and C <> 225) then

Status.value = 225

 

Dette er et eksempel, jeg har ikke her tatt med ifelse setningene osv.

 

Spørsmålet mitt er så: Jeg ønsker at når if betingelsene ikke er true lenger så vil jeg sette verdien til en annen variabel. Altså idet betingelsene går fra true til false. Jeg kan ikke bare bruke "else", fordi variabelen jeg skal bruke kan bli overskrevet av andre kodelinjer i programmet.

 

Eventuelle tips settes pris på.

Lenke til kommentar
Videoannonse
Annonse

Hei Azaz og velkommen til .net.

 

Det første jeg ville stille spørsmål ved var bruk av integere for å angi statuser. Her er kanskje en dictionary et bedre verktøy?

 

Når det gjelder if-else-spørsmålet ditt så vil jeg også gå litt inn på programmeringsfilosofier i .net. En variabel tilhører et objekt eller en funksjon. Derfor bør ikke tilfeller som at "variabelen jeg skal bruke kan bli overskrevet av andre kodelinjer" forekomme. (Les: Ikke bruk globale variabler).

 

Generelt sett så vil du ha if-setninger av typen:

IF (Condition1) function1(parameters)

ELSE IF (Condition2) funciton2(parameters)

ELSE function3(parameters)

 

Det skal ikke være tid for at noen verdier kan endres i løpet av behandlingen av en if-kodeblokk så det at andre programlinjer kan overskrive variabelen skal ikke være en reell problemstilling. Det du trenger å gjøre er å behandle if-kodeblokken hver gang A, B eller C-variablene endres.

 

Håper det hjelper litt.

Lenke til kommentar

Du må ha kontroll på hvordan koden din endrer uttrykket, ellers vil ikke koden din være deterministisk som vil skape et hav av problemer.

Som regel vil du aldri gjenbruke variabler (unntak finnes for teller) fordi det har ingen hensikt. Det er gratis å opprette variabler.

Lenke til kommentar

Årsaken til at jeg ikke har brukt Dictionary er vel også at jeg er helt fersk i dette. I tillegg så er det egentlig et ganske kort, simpelt program som jeg prøver å gjøre det jeg trenger så enkelt som mulig.

 

Jeg skal teste litt med å bare utvide if-setningen og se om det fungerer, hvis ikke får jeg komme med mer konkret eksempel på strukturen min :)

 

Takker for foreløpig hjelp. Ikke umulig at jeg kommer med noen oppfølgerspørsmål.

Lenke til kommentar
Du må ha kontroll på hvordan koden din endrer uttrykket, ellers vil ikke koden din være deterministisk som vil skape et hav av problemer. Som regel vil du aldri gjenbruke variabler (unntak finnes for teller) fordi det har ingen hensikt. Det er gratis å opprette variabler.

 

Årsaken til gjenbruk av variabler er at programmet henter inn flere input variabler fra en databaseserver (ikke SQL). Basert på disse skal jeg detektere og registrere forskjellige statuser som skrives ut til en output tag som går tilbake til databasen. Disse må ha spesifikke nummer. I tillegg skal det brukes til å detektere start og stopp tider. Derfor trenger jeg å vite når betingelsene opphører slik at jeg kan skrive ny status til en statusvariabel nr 2 som også blir skrevet inn til databasen igjen.

 

Kanskje litt rotete forklart..

Lenke til kommentar
  • 5 måneder senere...

Spørsmålet mitt er så: Jeg ønsker at når if betingelsene ikke er true lenger så vil jeg sette verdien til en annen variabel. Altså idet betingelsene går fra true til false. Jeg kan ikke bare bruke "else", fordi variabelen jeg skal bruke kan bli overskrevet av andre kodelinjer i programmet.

 

Om jeg ikke misforstod deg så ønsker du å utføre handlinger frem til en condition ikke er true lengre.

 

Et eksempel:

 

	Dim minVariabel As Boolean = False
	Do While minVariabel = False
		' Her looper du hva som skal skje mens variabelen er false
		'
		' Eksempel:
		For i As Integer = 0 To 10
			If i = 8 Then
				minVariabel = True
			End If
		Next
	Loop
	' Her er variabel true
	If minVariabel = True Then
		MsgBox("Tallet var 8, så vi satte minVariabel til True")
	End If

 

Du kan også endre linje 2 til: Do Until minVariabel = True

Endret av Spenzer
Lenke til kommentar

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
  • Hvem er aktive   0 medlemmer

    • Ingen innloggede medlemmer aktive
×
×
  • Opprett ny...