게시판 즐겨찾기
편집
드래그 앤 드롭으로
즐겨찾기 아이콘 위치 수정이 가능합니다.
[질문죄송합니다]변수를 가감시키다가 0이 되면 수치를 0으로 고정시키기
게시물ID : programmer_4573짧은주소 복사하기
작성자 : 5픽트롤이요
추천 : 0
조회수 : 447회
댓글수 : 40개
등록시간 : 2014/07/18 02:09:01
옵션
  • 본인삭제금지
안녕하세요. 염치없이 질문글 남겨 죄송합니다. 
여쭈어볼 일이 하나 있어 글 올려봅니다.

일단 실험의 결과부터 보여드리면 아래와 같습니다.


상황은 이렇습니다
1. 변수하나를 일정 시간마다 일정 수치를 가감시킵니다
2. 이 변수가 0이 되면 더이상 가감되지 않고 수치 0을 계속 가지고 있도록 하고 싶습니다.
3. 수치를 고정하는걸 표현할 때 이렇게 적었습니다.
if(num==0){num=0;}
4. 그랬더니 변수가 0이 되었을때 수치가 0으로 고정되지 않고, 계속해서 가감됩니다
5. 그래서 조건부분을 이렇게 "이하"라고 수정했더니 수치가 0으로 잘 고정됩니다.
if(num<=0){num=0;}

3번의 표현은 계속 가감되는데, 왜 5번의 표현은 고정이 되나요?




혹시 더 복잡한 문제일까 싶어 코드도 붙여놓겠습니다. 
언어는 플래시 액션스크립트 3.0입니다.

Colored By Color Scripter
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
import flash.text.TextField;
 
//변수
var num : Array = new Array(); // 가감될 변수를 담는 배열
var texts:Array = new Array(); // 화면에 표시할 텍스트를 담는 배열
var i:Number = 0; // for문에서 돌려먹을 변수
 
for(i=0;i<2;i++)
{
    //텍스트필드를 만들고 addChild
    texts[i]=new TextField();
    stage.addChild(texts[i]);
    texts[i].y = (i+1)*100;
    texts[i].x = 250;
    
    //초기 시간을 지정함.
    num[i]=60;
}
 
//이제 이밴트리스너 생성
stage.addEventListener(Event.ENTER_FRAME,control_num);
stage.addEventListener(KeyboardEvent.KEY_DOWN,function (e:KeyboardEvent)
    {
        for(i=0;i<2;i++){num[i]=60;}
    });
 
//함수시작
function control_num(t:Event)
{
    //시간이 가감됨
    num[0]--;
    num[1]--;
    
    //★★★★여기가 가장 중요한 부분(실험하고자 하는 이유)
    //num[0]은 0이하일때를 조건으로 가지고
    //num[1]은 0일 때를 조건으로 가짐
    if(num[0]<=0){num[0]=0;}
    if(num[1]==0){num[1]=0;}
    
    //그 결과 num[0]는 0이 되면 0이라는 수치를 유지하고
    //num[1]은 0이 되었음에도 불구하고 계속해서 수치가 감소합니다.
    texts[0].text = "texts[0]:"+num[0];
    texts[1].text = "texts[1]:"+num[1];
}
전체 추천리스트 보기
새로운 댓글이 없습니다.
새로운 댓글 확인하기
글쓰기
◀뒤로가기
PC버전
맨위로▲
공지 운영 자료창고 청소년보호