scanf로 사용자가 입력한 정보를 해답이랑 대조시켜서 맞으면 조건이 풀리고 틀리면 무한반복 되는 방법이 while (input != id) { scanf("%d", &input); if (input != id) printf("ID가 올바르지 않습니다! ;다시 입력해주세요:"); if (input == id) printf("ID가 올바릅니다! 비밀번호를 입력해주세요! "); } 이렇게 길게 밖에 못풀겠는데 무한루프로 줄엿을때 while (1) { if (id = input) printf("정답"); break; } 이렇게 하면 되나요?
안녕하세요, 강의를 보다가 질문이 생겼습니다. while문을 보면, initial - condition - execute (true일 경우) 순서로 진행된다고 설명하셨습니다. 그리고 전 강의에서는 code는 위에서 아래로 순서로 컴퓨터가 읽어내려간다고 설명하셨습니다. 그럼, code를 짜는 순서를 initial -condition -execute 순으로 짜야 하나요? 제가 혼자 실습하던 중에 while (1) { printf("infinite loop "); i++; if (i>=10) break; } 이런식으로 짜도 강의에서 짠 것과 같은 결과가 나오더군요 그래서 스무디님이 설명하신 두가지 중 어느 것에 해당하는 지 모르겠습니다. while문이 i-e-c 순서로 써놓아도 알아서 i-c-e순서로 읽는 건지, 만약 그렇다면 코드는 위에서 아래로 한줄씩 읽어나간다고 했던 설명과 충돌이 되지 않나 싶어서 질문 드립니다.
Myungjin Lee while문 자체에 initial을 행하는 부분은 없습니다. 필요한 경우 while문 위에서 initial을 따로 하는 것 입니다. 문법에 맞게 while문을 사용하면, condition->execute->condition->execute ... -> condition 순으로 실행 됩니다. 이것은 님이 어떻게 코드를 짜든 상관 없습니다. 문법에 맞게 for문을 사용하면 initial->condition->execute->condition-> ... -> excute ->condition 순으로 실행됩니다. 님이 어떻게 짜든 상관 없습니다. 반대로 말하면, 문법에서 정한 순서 이외로 작성하는 방법은 없습니다.
스무디 TV 아 그렇군요 문법에서 정한 순서 이외로 작성하는 법이 없다는 의미는, ....... 제가 짠 코드는 execute - condition 순이었는데 이건 그냥 우연으로 실행 된것뿐이고, 문법으로 맞게 condition-execute순서로 짜야 한단 말씀이죠? while문에서요~
Myungjin Lee execute - condition 순으로 짰다는 것은 착각입니다. 실제로는 condition - excute 순으로 짜셨습니다. while문에서 condition은 while()의 소괄호 안에 있는 식 입니다. execute는 while()다음에 나오는 문장 하나 입니다. 맨처음 댓글의 소스에서 while문의 condition은 1이 됩니다. 그리고 execute는 복합문장(중괄호로 둘러쌓인 블럭 전체)가 됩니다.
4분의1까지 도착 자랑스럽군 더나아가자
프로그렘을 만들다가 까먹었었는데 문장을 임시적으로 비활성화 시키는 방법이 어떻게 되었죠?
앞에 // 를 넣어서 각주로 만들면 임시적으로 됩니다. 다시지우면 활성화 되고요
여러줄을 하려면 /* */ 쓰면 되요
최고!
scanf로 사용자가 입력한 정보를 해답이랑 대조시켜서 맞으면 조건이 풀리고
틀리면 무한반복 되는 방법이
while (input != id) {
scanf("%d", &input);
if (input != id)
printf("ID가 올바르지 않습니다!
;다시 입력해주세요:");
if (input == id)
printf("ID가 올바릅니다! 비밀번호를 입력해주세요!
");
}
이렇게 길게 밖에 못풀겠는데
무한루프로 줄엿을때
while (1) {
if (id = input)
printf("정답");
break;
}
이렇게 하면 되나요?
+젝플뉨 아뇨. 그리고 되도록이면 무한루프 하지 마세요.
앙...
네; goto어허흠
안녕하세요, 강의를 보다가 질문이 생겼습니다.
while문을 보면, initial - condition - execute (true일 경우) 순서로 진행된다고 설명하셨습니다. 그리고 전 강의에서는 code는 위에서 아래로 순서로 컴퓨터가 읽어내려간다고 설명하셨습니다. 그럼, code를 짜는 순서를 initial -condition -execute 순으로 짜야 하나요?
제가 혼자 실습하던 중에
while (1) {
printf("infinite loop
");
i++;
if (i>=10)
break;
}
이런식으로 짜도 강의에서 짠 것과 같은 결과가 나오더군요
그래서 스무디님이 설명하신 두가지 중 어느 것에 해당하는 지 모르겠습니다.
while문이 i-e-c 순서로 써놓아도 알아서 i-c-e순서로 읽는 건지, 만약 그렇다면 코드는 위에서 아래로 한줄씩 읽어나간다고 했던 설명과 충돌이 되지 않나 싶어서 질문 드립니다.
Myungjin Lee while문 자체에 initial을 행하는 부분은 없습니다. 필요한 경우 while문 위에서 initial을 따로 하는 것 입니다.
문법에 맞게 while문을 사용하면, condition->execute->condition->execute ... -> condition 순으로 실행 됩니다. 이것은 님이 어떻게 코드를 짜든 상관 없습니다.
문법에 맞게 for문을 사용하면 initial->condition->execute->condition-> ... -> excute ->condition 순으로 실행됩니다. 님이 어떻게 짜든 상관 없습니다.
반대로 말하면, 문법에서 정한 순서 이외로 작성하는 방법은 없습니다.
스무디 TV 아 그렇군요 문법에서 정한 순서 이외로 작성하는 법이 없다는 의미는, .......
제가 짠 코드는 execute - condition 순이었는데 이건 그냥 우연으로 실행 된것뿐이고, 문법으로 맞게 condition-execute순서로 짜야 한단 말씀이죠? while문에서요~
Myungjin Lee execute - condition 순으로 짰다는 것은 착각입니다. 실제로는 condition - excute 순으로 짜셨습니다.
while문에서 condition은 while()의 소괄호 안에 있는 식 입니다. execute는 while()다음에 나오는 문장 하나 입니다. 맨처음 댓글의 소스에서 while문의 condition은 1이 됩니다. 그리고 execute는 복합문장(중괄호로 둘러쌓인 블럭 전체)가 됩니다.
스무디 TV 아 그렇네요~ 저는 { } 안에 있는 printf 와 if 문을 execute, condition으로 착각했네요.
답변 고맙습니다~!
while(num1 = num2,num2 = num3,num3 = num1,num1 = 0,num2 = 0,num3 = 0)
{
num1=rand()%10;
num2=rand()%10;
num3=rand()%10;
}
스무디님 이런식으로 반복되지 않는 숫자와 0이 들어가지 않는 3개의숫자를 만들려는데요 자꾸 오류가 나요 어떻게 해야되지요?
+민석김
int arr[9] = {1, 2, 3, 4, 5, 6, 7, 8, 9};
int i ;
for ( i=0; i < 9; i++) {
int r1 = rand()%9;
int r2 = rand()%9;
int t = arr[r1];
arr[r1] = arr[r2];
arr[r2] = t;
}
printf("%d, %d, %d", arr[0], arr[1], arr[2]);
굿굿