bedingung in variable speichern?

Status
Nicht offen für weitere Antworten.

sousou

Bekanntes Mitglied
Hallo ihr lieben,

ich hab da ein frage bei der ich das erste mal zweifle ob es dazu eine passende Antwort gibt. Es geht darum das ich in einer If abfrage eine Bedingung vornehmen möchte welche in einer variabel gespeichert ist. Sprich es sieht folgendermaßen aus:


Code:
String bedingung = "HSB2[2] - HSB[2] <= 20 && HSB2[2] - HSB[2] > 10":

if ( bedinung ){
....
}

Ich bin mir dessen bewusst dass das quatsch ist. Aber gibt es eine möglichkeit eine bedingung in einer Variabel zu speichern und diese Variabel dann als Parameter in der If Abfrage setzt?


Danke im vorraus.
 
hm du kannst nur boolsche ausdrücke in if-bedingungen verwenden, die kannst du sicherlich vorher berechnen lassen .. aber das beispiel da oben ist bedingt durch String total unbrauchbar 😀

Code:
boolean b =  (((HSB2[2] - HSB[2]) <= 20) && ((HSB2[2] - HSB[2]) > 10))
 
Zuletzt bearbeitet:
Das ist ja wirklich eine philosophische Betrachtungsweise, "ich hab da ein frage bei der ich das erste mal zweifle ob es dazu eine passende Antwort gibt". Aber ganz so ist es nicht.

Für so etwas brauchst Du einen Parser für solche textlichen Ausdrücke, es ist ja in gewisser Weise eine Art Programmierbarkeit Deines Programms. Das ist definitiv nicht trivial und je nach Kenntnisstand würde ich sagen, einfach die Finger davon lassen, ansonsten entweder nach Parser-Generatoren umschauen oder per Hand so etwas programmieren.
 
Hi,

leg doch eine Variable an und veränder sie dann in einer Methode, in der du die IF-schleife einbaust, am ende speicherst du die Variable dann neu ab.

Stichwort: Return Value .

So gehts auch und du brauchst dir nicht zu überlegen, wie du das als Variable hinkriegst. Gleiches Ergebnis.
 
Zuletzt bearbeitet:
Vielleicht willst du auch sowas in der Art:
Java:
package dumb;

public class BedingungInVariableSpeichern {
	
	public static void main(String[] args) {
		FloatBedingung[] bedingungen = new FloatBedingung[3];

		bedingungen[0] = new FloatBedingung() {			
			@Override
			public boolean accept(float f) {
				return f > 5.5; // Beispielcode...
			}
		};
		bedingungen[1] = new FloatBedingung() {			
			@Override
			public boolean accept(float f) {
				return f%10==2; // Beispielcode...
			}
		};
		bedingungen[2] = new FloatBedingung() {			
			@Override
			public boolean accept(float f) {
				return f<0 && f > -12.5; // Beispielcode...
			}
		};
		

		// Beispiel: iteriert über die Zahlen -15 bis 14 und prüft für jede Zahl welche der Bedingungen zutreffen.
		for(float f=-15;f<15;++f){
			for(int i=0;i<bedingungen.length;++i){
				if(bedingungen[i].accept(f)){
					System.out.println(f+" wird von bedingung nr. "+i+" akzeptiert!");
				}
			}
		}
	}
}

public interface FloatBedingung{
	public boolean accept(float f); // du kannst natürlich die Methode so gestalten wie du willst, z.b. mehrere Parameter oder einen anderen Namen oder ...
}
Du speicherst verschiedene Implementierungen der Methode accept(float f) in einem Array (oder einer Liste oder oder oder...) ab.
 
Zuletzt bearbeitet:
ich denke wenn noch nicht ganz klar ist wie man bedingungen aufbaut etc verwirrt diese art der implementierung mehr ...
 
Status
Nicht offen für weitere Antworten.

Neue Themen


Zurück
Oben