일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 자스코테
- react
- ReactNative
- Oracle
- 자바의정석
- 코딩테스트
- VUE
- 정보처리기사정리
- 타입스크립트
- 오라클
- spring
- typescript
- 이안의평일코딩
- 정보처리기사
- 평일코딩
- 스프링
- Java의정석
- 자바스크립트 코딩테스트
- 자바스크립트
- 리액트
- 국비IT
- CSS
- 리액트네이티브
- php
- 정보처리기사실기
- javascript
- 정보처리기사실기요약
- 정보처리기사요약
- 정보처리기사실기정리
- 국비코딩
- Today
- Total
이안의 평일코딩
JAVA의 정석 10일차 - 반복문 while 본문
2020.06.26(금)
1. while문
=> 무한루프 (데이터베이스 (오라클), 파일 읽기, 서버제작, 게임)
=> 파일: XML, JSON
=> break(종료)
형식)
초기값 ======= 1
while(조건식) { == 2 ==> true => {안에 있는 내용 수행} / false => 종료
반복수행문장 = 3
증가식 == 4 ==> 조건식 비교
}
예제) 1~10 정수를 출력
1) 1~10까지 변경되는 변수 => 루프변수
int i = 1; // 시작=> 1
while(i<=10) { // => 10될 때까지
System.out.println(i);
i++; // i=2 ==> i<=10 ... i=11 i<=10 false => 종료
// 증감없으면 무한루프가 됨
}
1) 초기값 설정 i=1
어디까지 수행 -> 조건식 i<=10 (i가 10이 될 때까지)
i를 어떻게 변경 -> i++, i+=2, i+3.....
2) 정수값을 받아서 -> 받은 정수 갯수만큼 ★을 출력 // 변수 2개 필요 (증가 loop변수 필요)
import java.util.*;
public class 반복문_while {
public static void main(String[] args) {
int user=0;
int i=1; // 사용자가 요청한 값까지 변경할 변수 => while에서 사용하는 변수
// 정수값을 받는다
Scanner scan = new Scanner(System.in);
System.out.print("정수 입력:");
user=scan.nextInt();
while(i<=user) {
System.out.print("★");
i++; // user의 갯수가 될 때까지 루프 실행
}
}
}
3) 사용자가 알파벳을 입력하면 B ==> AB
D => ABCD
char ===> scan.next().charAt(0)
"ABCDE" ==> scan.next()
'A' => charAt(0)
'B' => charAt(1)
import java.util.*;
public class 반복문_while {
public static void main(String[] args) {
char user=' '; // while ==> 조건이 false될 때까지 변경하는 변수 : 루프변수
char c='A';
Scanner scan = new Scanner(System.in);
System.out.print("알파벳 입력(대문자) :");
user=scan.next().charAt(0);
while (c<=user) {
System.out.print(c);
c++
}
}
}
* 참조형 변수 : 배열, 클래스 (<->기본형 변수)
(1) 문자열 저장 변수 -> String
형식) char c = 'A' -> 문자 한개만 저장
String s = "ABCDEFG" -> 웹, 윈도우 (모든 데이터 문자열)
==== =
데이터형 변수
-> String : 클래스
기능 (Java에서 제공)
-> 문자 갯수 // (비밀번호 입력 값 갯수, 문자메시지 일정 길이 넘으면 mms로 전송, 자소서 글자수 제한)
String s = "ABCDEF";
s.length() => 6
-> String s = "ABCDEF";
s.charAt(0) => 'A'
import java.util.*;
public class 반복문_while3 {
public static void main(String[] args) {
String s=""; //문자 여러개 저장
Scanner scan = new Scanner(System.in);
System.out.print("문자열을 입력하세요>");
s=scan.next(); //String으로 받은 값을 저장
// scan.next()는 공백이 들어가면 끊어지고
scan.nextLine()는 공백이 들어가도 공백포함 갯수 읽어옴 => 띄어쓰기해도 가능
System.out.println(s);
System.out.println("갯수:"+s.length());
}
}
4) 사용자 문자열을 입력
대문자 갯수, 소문자 갯수 확인
import java.util.*;
public class 반복문_while3 {
public static void main(String[] args) {
String s="";
Scanner scan = new Scanner(System.in);
System.out.print("문자열을 입력하세요>");
s=scan.next();
int a=0,b=0;
// a => 소문자 갯수
// b => 대문자 갯수
int i=0; // 문자의 갯수만큼 증가하는 변수 => 루프변수
// ABCDEFG => 7개지만 0번부터 시작하기 때문에
// 0123456 while i <= 이 아닌 while i < s.length() 여야함
// AbCdeFG
while(i < s.length()) {
char c = s.charAt(i);
if(c >= 'A' && c <= 'Z')
b++; // 갯수 확인 ==> 합 +=
if(c >= 'a' && c <= 'z')
a++;
i++;
}
System.out.println("대문자 갯수:"+b);
System.out.println("소문자 갯수:"+a);
}
}
5) 주의점
(1) while문 조건이 없는 경우 error남 => for(;;)는 무한루프로 error는 안남
while() {=> 조건식이 없다
} ====> 오류발생
(2) while에서 무한루프
=> for(;;) => while(true) 가장 많이 등장
(3) for문과 while문
for(int i=0; i<10; i++)
vs
int i = 0;
while(i<10) {
i++
}
(4) 반대로
int i = 5;
while(i >= 0) {
System.out.println(i);
i--;
}
6) 변수설정
public class 변수설정 {
public static void main(String[] args) {
String title="#살아있다(2020)";
// System.out.println("영화명:"+title)
boolean isOpen=true;
// System.out.println(" "+(isOpen==true?"상영중":"미개봉"))
double score=6.7;
String na="한국";
String genre="";
String regdate="2020.06.24";
// System.out.println("개봉일:"+regdate+"개봉");
String director="조일형";
String actor="유아인,박신혜";
int time=98;
// System.out.println("시간:"+time+"분");
int grade=15;
int rank=1;
int showUser=357069;
7) 변수사용범위
변수 Scope
========
* 변수 종류
(1) 지역변수
(2) 멤버변수
(3) 공유변수
public class A {
int a: -> 멤버변수 // 클래스 A가 저장이 될 때마다 생성
static int b; -> 공유변수 // JVM class를 로드할 때
public static void main(String[] args) {
int c; -> 지역변수 (각 블럭을 넘어가면 사라지는 변수)
} // c변수 -> main에서만 사용이 가능
}
System.gc(); // 메모리 회수 (가비지컬렉션)
2. do~while문
형식) 초기값 ①
do ②{
수행문장 ③
증가식 ④
} while(조건식); ⑤ //증가한 다음 조건식
예시) int i=1;
do {
i++;
} while(i<=5);
i=1 -> i=2 i<=5
i=2 -> i=3 i<=5
i=3 -> i=4 i<=5
i=4 -> i=5 i<=5
i=5 -> i=6 i<=5 --> false
* for문 vs while문 vs do~while문
int i=1;
for(i=1; i<=5; i++) {
System.out.print(i+" ");
}
====================
i=1;
while(i<=5) {
System.out.print(i+" ");
i++;
}
====================
i=1;
do {
System.out.print(i+" ");
i++;
}while(i<=5);
3. 연습문제
1) 입력한 수 만큼 합계 => 변수 3개(user, i, sum)
import java.util.*;
public class 합계 {
public static void main(String[] args) {
int user = 0; //사용자가 받는 변수
int i = 1; //증가되는 변수(루프변수), 1부터 시작되서 증가하므로 1로 설정.
int sum = 0; //누적(합)
Scanner scan = new Scanner(System.in);
System.out.print("정수 입력>");
user = scan.nextInt();
// user = 5
while(i<=user) {
sum+=i;
i++;
}
System.out.print("sum="+sum); //최종결과값만 보기위해 while문 밖에서.
// i = 6 (5까지 출력하고 6이 되어 조건 false되서 빠짐)
i = 1; //초기화 시켜서 새로운 변수대신 재사용하면 됨
}
}
'Back-end > Java' 카테고리의 다른 글
JAVA의 정석 - 변수, 데이터, 연산자, 제어문 복습 (0) | 2020.06.29 |
---|---|
JAVA의 정석 11일차 - do~while, break, continue, 중첩 for문 (0) | 2020.06.29 |
JAVA의 정석 9일차 - 반복문 for (0) | 2020.06.25 |
JAVA의 정석 8일차 - 다중조건문 & 선택문 (0) | 2020.06.24 |
JAVA의 정석 7일차 - 연산자정리 & 조건문2 (0) | 2020.06.23 |