728x90
중복체크는 로또에서 가장 많이 사용된다.
로또 만들기
1) 로또 숫자가 들어 갈 배열 생성
var v_lottoNums = [];
더보기
<meta charset="UTF-8">
<script>
var v_lottoNums = [];
</script>
2) 로또 숫자 생성 할 함수 구현
function f_ranNum(p_start, p_end){
return Math.round(Math.random()*(p_end-p_start))+p_start;
}
더보기
<meta charset="UTF-8">
<script>
var v_lottoNums = [];
function f_ranNum(p_start, p_end){
return Math.round(Math.random()*(p_end-p_start))+p_start;
}
</script>
3) 숫자를 생성하고 배열에 집어넣기
for(var i=1;i<=6;i++){
v_lottoNums[v_lottoNums.length]=f_ranNum(1,45);
}
더보기
<meta charset="UTF-8">
<script>
var v_lottoNums = [];
function f_ranNum(p_start, p_end){
return Math.round(Math.random()*(p_end-p_start))+p_start;
}
for(var i=1;i<=6;i++){
v_lottoNums[v_lottoNums.length]=f_ranNum(1,45);
}
</script>
4) 반복문 생성
언제 중복된 숫자가 몇 번 발생할지 알 수 없으므로 반복문의 횟수를 정할 수 없음
for(;"로또번호발생은무한루핑";){
}
더보기
<meta charset="UTF-8">
<script>
var v_lottoNums = [];
function f_ranNum(p_start, p_end){
return Math.round(Math.random()*(p_end-p_start))+p_start;
}
for(;"로또번호발생은무한루핑";){
}
}
alert(v_lottoNums);
</script>
5) 종료조건
무한루핑을 사용할 땐 서버프로그램이 아니면 꼭 종료조건을 생각해야함
if(v_lottoNums.length==6) break;
더보기
<meta charset="UTF-8">
<script>
var v_lottoNums = [];
function f_ranNum(p_start, p_end){
return Math.round(Math.random()*(p_end-p_start))+p_start;
}
for(;"로또번호발생은무한루핑";){
if(v_lottoNums.length==6) break;
}
}
alert(v_lottoNums);
</script>
6) 랜덤숫자를 변수에 넣어줌
var v_num = f_ranNum(1,45);
더보기
<meta charset="UTF-8">
<script>
var v_lottoNums = [];
function f_ranNum(p_start, p_end){
return Math.round(Math.random()*(p_end-p_start))+p_start;
}
for(;"로또번호발생은무한루핑";){
if(v_lottoNums.length==6) break;
var v_num = f_ranNum(1,45);
}
}
alert(v_lottoNums);
</script>
7) 값체크
배열에 넣기 전에 배열에 이미 같은 값이 존재하는지 체크
for(var i=0;i<v_lottoNums.length;i++){
if(v_lottoNums[i]==v_num){
alert("같은 값이 존재합니당");
}else{
alert("같은 값이 없엇");
}
}
더보기
<meta charset="UTF-8">
<script>
var v_lottoNums = [];
function f_ranNum(p_start, p_end){
return Math.round(Math.random()*(p_end-p_start))+p_start;
}
for(;"로또번호발생은무한루핑";){
if(v_lottoNums.length==6) break;
var v_num = f_ranNum(1,45);
for(var i=0;i<v_lottoNums.length;i++){
if(v_lottoNums[i]==v_num){
alert("같은 값이 존재합니당");
}else{
alert("같은 값이 없엇");
}
}
}
alert(v_lottoNums);
</script>
for문 안의 ifelse문은 이상해!!
>> 같은 값이 없다는 가정
var v_check = false;
더보기
<meta charset="UTF-8">
<script>
var v_lottoNums = [];
function f_ranNum(p_start, p_end){
return Math.round(Math.random()*(p_end-p_start))+p_start;
}
var v_check = false;
for(;"로또번호발생은무한루핑";){
if(v_lottoNums.length==6) break;
var v_num = f_ranNum(1,45);
for(var i=0;i<v_lottoNums.length;i++){
if(v_lottoNums[i]==v_num){
alert("같은 값이 존재합니당");
}else{
alert("같은 값이 없엇");
}
}
}
alert(v_lottoNums);
</script>
>>
if(v_lottoNums[i]==v_num){
v_check=true; // 없다고 가정했는데 있음
break; // 같은 값이 있으면 더이상 체크 할 필요가 없음
}
더보기
<meta charset="UTF-8">
<script>
var v_lottoNums = [];
function f_ranNum(p_start, p_end){
return Math.round(Math.random()*(p_end-p_start))+p_start;
}
var v_check = true;
for(;"로또번호발생은무한루핑";){
if(v_lottoNums.length==6) break;
var v_num = f_ranNum(1,45);
for(var i=0;i<v_lottoNums.length;i++){
if(v_lottoNums[i]==v_num){
v_check=true;
break;
}
}
}
alert(v_lottoNums);
</script>
>> 같은 값이 없을 때 곧 v_check가 false일때만 배열에 값을 넣음
if(!v_check){
v_lottoNums[v_lottoNums.length]=v_num;
}
더보기
<meta charset="UTF-8">
<script>
var v_lottoNums = [];
function f_ranNum(p_start, p_end){
return Math.round(Math.random()*(p_end-p_start))+p_start;
}
var v_check = true;
for(;"로또번호발생은무한루핑";){
if(v_lottoNums.length==6) break;
var v_num = f_ranNum(1,45);
for(var i=0;i<v_lottoNums.length;i++){
if(v_lottoNums[i]==v_num){
v_check=true;
break;
}
}
if(!v_check){
v_lottoNums[v_lottoNums.length]=v_num;
}
}
alert(v_lottoNums);
</script>
>> 완성
배열 중복된값 없을때까지~
더보기
<!DOCTYPE html>
<meta charset="UTF-8">
<script>
// 중복 체크 로직은 무지 중요합니다. 아주 익숙해져야 함.
// 안되면 이해 될때까지 외워서....
// 66~100 (0~34) + 66
var v_lottoNums = []; // 로또번호 담을 빈 배열
function f_ranNum(p_start, p_end) {
return Math.round(Math.random() * (p_end - p_start)) + p_start;
}
// 언제 중복된 숫자가 몇번 발생할지 알 수 없으므로
// 반복문의 횟수를 정할 수 없음
// 무한루핑사용할 땐 서버프로그램이 아니면 꼭 종료조건을 생각해야함
for (; "로또번호발생은무한루핑";) {
if (v_lottoNums.length == 6) { break; }
var v_num = f_ranNum(1, 45); // 랜덤 숫자 발생
//배열에 넣기 전에 배열에 이미 같은 값이 존재하는지 체크
var v_check = false; // 같은 값이 없다고 가정
for (var i = 0; i < v_lottoNums.length; i++) {
if (v_lottoNums[i] == v_num) {
v_check = true; // 없다고 가정했는데 있음!
break; // 같은 값이 있으면 더 이상 체크할 필요없음
}
}
// 같은 값이 없을때 곧 v_check가 false일때만 배열에 값을 넣음!
// v_check가 true일때는 아무일도 하지 않음!
if (!v_check) {
v_lottoNums[v_lottoNums.length] = v_num;
}
}
alert(v_lottoNums); // 숫자 6개 확인
</script>
예쁘게예쁘게~~
<style>
.cl_num{
display: inline-block;
width: 50px;
height: 50px;
border: 2px solid coral;
border-radius: 50% 50%;
text-align: center;
background-color: coral;
line-height: 50px; /* 글자 수직중앙정렬 */
color: white;
font-weight: bold;
}
</style>
<body>
<input type="button" value="금주의 당첨 예상번호는?" onclick="f_lotto()"><br><br>
<div class="cl_num">?</div>
<div class="cl_num">?</div>
<div class="cl_num">?</div>
<div class="cl_num">?</div>
<div class="cl_num">?</div>
<div class="cl_num">?</div>
</body>
더보기
<!DOCTYPE html>
<meta charset="UTF-8">
<style>
.cl_num{
display: inline-block;
width: 50px;
height: 50px;
border: 2px solid coral;
border-radius: 50% 50%;
text-align: center;
background-color: coral;
line-height: 50px; /* 글자 수직중앙정렬 */
color: white;
font-weight: bold;
}
</style>
<body>
<input type="button" value="금주의 당첨 예상번호는?" onclick="f_lotto()"><br><br>
<div class="cl_num">?</div>
<div class="cl_num">?</div>
<div class="cl_num">?</div>
<div class="cl_num">?</div>
<div class="cl_num">?</div>
<div class="cl_num">?</div>
</body>
<script>
// 중복 체크 로직은 무지 중요합니다. 아주 익숙해져야 함.
// 안되면 이해 될때까지 외워서....
// 66~100 (0~34) + 66
var v_lottoNums = []; // 로또번호 담을 빈 배열
function f_ranNum(p_start, p_end) {
return Math.round(Math.random() * (p_end - p_start)) + p_start;
}
// 언제 중복된 숫자가 몇번 발생할지 알 수 없으므로
// 반복문의 횟수를 정할 수 없음
// 무한루핑사용할 땐 서버프로그램이 아니면 꼭 종료조건을 생각해야함
for (; "로또번호발생은무한루핑";) {
if (v_lottoNums.length == 6) { break; }
var v_num = f_ranNum(1, 45); // 랜덤 숫자 발생
//배열에 넣기 전에 배열에 이미 같은 값이 존재하는지 체크
var v_check = false; // 같은 값이 없다고 가정
for (var i = 0; i < v_lottoNums.length; i++) {
if (v_lottoNums[i] == v_num) {
v_check = true; // 없다고 가정했는데 있음!
break; // 같은 값이 있으면 더 이상 체크할 필요없음
}
}
// 같은 값이 없을때 곧 v_check가 false일때만 배열에 값을 넣음!
// v_check가 true일때는 아무일도 하지 않음!
if (!v_check) {
v_lottoNums[v_lottoNums.length] = v_num;
}
}
// alert(v_lottoNums); // 숫자 6개 확인
</script>
태그에 접근하는 속성 innerHTML
id, name없이!
1) 로또 함수구현
function f_lotto(){
}
더보기
<!DOCTYPE html>
<meta charset="UTF-8">
<style>
.cl_num{
display: inline-block;
width: 50px;
height: 50px;
border: 2px solid coral;
border-radius: 50% 50%;
text-align: center;
background-color: coral;
line-height: 50px; /* 글자 수직중앙정렬 */
color: white;
font-weight: bold;
}
</style>
<body>
<input type="button" value="금주의 당첨 예상번호는?" onclick="f_lotto()"><br><br>
<div class="cl_num">?</div>
<div class="cl_num">?</div>
<div class="cl_num">?</div>
<div class="cl_num">?</div>
<div class="cl_num">?</div>
<div class="cl_num">?</div>
</body>
<script>
// 중복 체크 로직은 무지 중요합니다. 아주 익숙해져야 함.
// 안되면 이해 될때까지 외워서....
// 66~100 (0~34) + 66
var v_lottoNums = []; // 로또번호 담을 빈 배열
function f_ranNum(p_start, p_end) {
return Math.round(Math.random() * (p_end - p_start)) + p_start;
}
// 언제 중복된 숫자가 몇번 발생할지 알 수 없으므로
// 반복문의 횟수를 정할 수 없음
// 무한루핑사용할 땐 서버프로그램이 아니면 꼭 종료조건을 생각해야함
for (; "로또번호발생은무한루핑";) {
if (v_lottoNums.length == 6) { break; }
var v_num = f_ranNum(1, 45); // 랜덤 숫자 발생
//배열에 넣기 전에 배열에 이미 같은 값이 존재하는지 체크
var v_check = false; // 같은 값이 없다고 가정
for (var i = 0; i < v_lottoNums.length; i++) {
if (v_lottoNums[i] == v_num) {
v_check = true; // 없다고 가정했는데 있음!
break; // 같은 값이 있으면 더 이상 체크할 필요없음
}
}
// 같은 값이 없을때 곧 v_check가 false일때만 배열에 값을 넣음!
// v_check가 true일때는 아무일도 하지 않음!
if (!v_check) {
v_lottoNums[v_lottoNums.length] = v_num;
}
}
// alert(v_lottoNums); // 숫자 6개 확인
</script>
2) 같은 클래스로 설정한 것에 접근하는 방법
얘는 배열방식으로 접근 가능(elements)
var v_divs = document.getElementsByClassName("cl_num");
더보기
<!DOCTYPE html>
<meta charset="UTF-8">
<style>
.cl_num{
display: inline-block;
width: 50px;
height: 50px;
border: 2px solid coral;
border-radius: 50% 50%;
text-align: center;
background-color: coral;
line-height: 50px; /* 글자 수직중앙정렬 */
color: white;
font-weight: bold;
}
</style>
<body>
<input type="button" value="금주의 당첨 예상번호는?" onclick="f_lotto()"><br><br>
<div class="cl_num">?</div>
<div class="cl_num">?</div>
<div class="cl_num">?</div>
<div class="cl_num">?</div>
<div class="cl_num">?</div>
<div class="cl_num">?</div>
</body>
<script>
// 중복 체크 로직은 무지 중요합니다. 아주 익숙해져야 함.
// 안되면 이해 될때까지 외워서....
// 66~100 (0~34) + 66
var v_lottoNums = []; // 로또번호 담을 빈 배열
function f_ranNum(p_start, p_end) {
return Math.round(Math.random() * (p_end - p_start)) + p_start;
}
// 언제 중복된 숫자가 몇번 발생할지 알 수 없으므로
// 반복문의 횟수를 정할 수 없음
// 무한루핑사용할 땐 서버프로그램이 아니면 꼭 종료조건을 생각해야함
for (; "로또번호발생은무한루핑";) {
if (v_lottoNums.length == 6) { break; }
var v_num = f_ranNum(1, 45); // 랜덤 숫자 발생
//배열에 넣기 전에 배열에 이미 같은 값이 존재하는지 체크
var v_check = false; // 같은 값이 없다고 가정
for (var i = 0; i < v_lottoNums.length; i++) {
if (v_lottoNums[i] == v_num) {
v_check = true; // 없다고 가정했는데 있음!
break; // 같은 값이 있으면 더 이상 체크할 필요없음
}
}
// 같은 값이 없을때 곧 v_check가 false일때만 배열에 값을 넣음!
// v_check가 true일때는 아무일도 하지 않음!
if (!v_check) {
v_lottoNums[v_lottoNums.length] = v_num;
}
}
// alert(v_lottoNums); // 숫자 6개 확인
var v_divs = document.getElementsByClassName("cl_num");
function f_lotto(){
}
</script>
3) 배열 요소값을 div에 넣어주기
for (var i = 0; i < v_lottoNums.length; i++) {
v_divs[i].innerHTML = v_lottoNums[i];
}
더보기
<!DOCTYPE html>
<meta charset="UTF-8">
<style>
.cl_num {
display: inline-block;
width: 50px;
height: 50px;
border: 2px solid coral;
border-radius: 50% 50%;
text-align: center;
background-color: coral;
line-height: 50px;
/* 글자 수직중앙정렬 */
color: white;
font-weight: bold;
}
</style>
<body>
<input type="button" value="금주의 당첨 예상번호는?" onclick="f_lotto()"><br><br>
<div class="cl_num">?</div>
<div class="cl_num">?</div>
<div class="cl_num">?</div>
<div class="cl_num">?</div>
<div class="cl_num">?</div>
<div class="cl_num">?</div>
</body>
<script>
// 중복 체크 로직은 무지 중요합니다. 아주 익숙해져야 함.
// 안되면 이해 될때까지 외워서....
// 66~100 (0~34) + 66
var v_lottoNums = []; // 로또번호 담을 빈 배열
function f_ranNum(p_start, p_end) {
return Math.round(Math.random() * (p_end - p_start)) + p_start;
}
// 언제 중복된 숫자가 몇번 발생할지 알 수 없으므로
// 반복문의 횟수를 정할 수 없음
// 무한루핑사용할 땐 서버프로그램이 아니면 꼭 종료조건을 생각해야함
for (; "로또번호발생은무한루핑";) {
if (v_lottoNums.length == 6) { break; }
var v_num = f_ranNum(1, 45); // 랜덤 숫자 발생
//배열에 넣기 전에 배열에 이미 같은 값이 존재하는지 체크
var v_check = false; // 같은 값이 없다고 가정
for (var i = 0; i < v_lottoNums.length; i++) {
if (v_lottoNums[i] == v_num) {
v_check = true; // 없다고 가정했는데 있음!
break; // 같은 값이 있으면 더 이상 체크할 필요없음
}
}
// 같은 값이 없을때 곧 v_check가 false일때만 배열에 값을 넣음!
// v_check가 true일때는 아무일도 하지 않음!
if (!v_check) {
v_lottoNums[v_lottoNums.length] = v_num;
}
}
// alert(v_lottoNums); // 숫자 6개 확인
var v_divs = document.getElementsByClassName("cl_num");
function f_lotto() {
for (var i = 0; i < v_lottoNums.length; i++) {
v_divs[i].innerHTML = v_lottoNums[i];
}
}
</script>
완성~~
더보기
<!DOCTYPE html>
<meta charset="UTF-8">
<style>
.cl_num {
display: inline-block;
width: 50px;
height: 50px;
border: 2px solid coral;
border-radius: 50% 50%;
text-align: center;
background-color: coral;
line-height: 50px;
/* 글자 수직중앙정렬 */
color: white;
font-weight: bold;
}
</style>
<body>
<input type="button" value="금주의 당첨 예상번호는?" onclick="f_lotto()"><br><br>
<div class="cl_num">?</div>
<div class="cl_num">?</div>
<div class="cl_num">?</div>
<div class="cl_num">?</div>
<div class="cl_num">?</div>
<div class="cl_num">?</div>
</body>
<script>
// 중복 체크 로직은 무지 중요합니다. 아주 익숙해져야 함.
// 안되면 이해 될때까지 외워서....
// 66~100 (0~34) + 66
var v_lottoNums = []; // 로또번호 담을 빈 배열
function f_ranNum(p_start, p_end) {
return Math.round(Math.random() * (p_end - p_start)) + p_start;
}
// 언제 중복된 숫자가 몇번 발생할지 알 수 없으므로
// 반복문의 횟수를 정할 수 없음
// 무한루핑사용할 땐 서버프로그램이 아니면 꼭 종료조건을 생각해야함
for (; "로또번호발생은무한루핑";) {
if (v_lottoNums.length == 6) { break; }
var v_num = f_ranNum(1, 45); // 랜덤 숫자 발생
//배열에 넣기 전에 배열에 이미 같은 값이 존재하는지 체크
var v_check = false; // 같은 값이 없다고 가정
for (var i = 0; i < v_lottoNums.length; i++) {
if (v_lottoNums[i] == v_num) {
v_check = true; // 없다고 가정했는데 있음!
break; // 같은 값이 있으면 더 이상 체크할 필요없음
}
}
// 같은 값이 없을때 곧 v_check가 false일때만 배열에 값을 넣음!
// v_check가 true일때는 아무일도 하지 않음!
if (!v_check) {
v_lottoNums[v_lottoNums.length] = v_num;
}
}
// alert(v_lottoNums); // 숫자 6개 확인
var v_divs = document.getElementsByClassName("cl_num");
function f_lotto() {
for (var i = 0; i < v_lottoNums.length; i++) {
v_divs[i].innerHTML = v_lottoNums[i];
}
}
</script>