Frage zum Casten



  • Hallo ich habe folgenden Code :
    Der wird auch ohne Probleme compiliert :

    private int segmentHeight		= -1;
    	private int segmentLength		= -1;
    
    	public SegmentColon(Color segmentColor, int segmentLength){
    		this.segmentLength		= segmentLength / 2;
    		this.segmentHeight		= segmentLength / 3;
    	}
    

    So aber nicht

    private int segmentHeight		= -1;
    	private int segmentLength		= -1;
    
    	public SegmentColon(Color segmentColor, int segmentLength){
    		this.segmentLength		= 0.5 * segmentLength ;
    		this.segmentHeight		= segmentLength / 3;
    	}
    

    Hier erwartet der Compiler das ich nach int caste. Ehrlich gesagt hätte ich das auch schon in der ersten Variante erwartet. Warum geht es beim ersten jedoch nicht beim zweiten ?



  • int / int = int
    double * int = double



  • gastanwort hat dir geschrieben warum, daher

    private int segmentHeight        = -1;
        private int segmentLength        = -1;
    
        public SegmentColon(Color segmentColor, int segmentLength){
            this.segmentLength        = segmentLength / 2;
            this.segmentHeight        = segmentLength / 3;
        }
    

    oder

    private int segmentHeight        = -1;
        private int segmentLength        = -1;
    
        public SegmentColon(Color segmentColor, int segmentLength){
            this.segmentLength        = segmentLength >> 1;
            this.segmentHeight        = segmentLength / 3;
        }
    

Anmelden zum Antworten