2장. 자바의 기초문법
-IF조건문(범위로 나누어져 있을때)
-switch조건문 : 몇가지 케이스가 정해져있을때. (많은 범위x)
(무한루프문) -while문, for문
-while반복문 : 세로구문임, 무한반복일때 주로 사용
배열 : 대부분 증가식 사용
감소식 - 별찍을때
-for문을 더 많이씀(가로구문이기 때문), 조건문일때 주로 사용
while과 for문 중에 자신이 원하는 것 사용
-while문
//int sum;을 메인메소드에서 선언해주었기 때문에 while문에서도 사용가능함.
자기혼자 증가하는 i++; ++i; 둘다 똑같음 상관없음.
//while : 초기식 -> 조건식 -> 명령문-> 증감식 : 수직구조
int sum=0;
int i = 1;
while(i<=10) {
sum +=i;
i++;
System.out.println("1에서 10까지의 합:" +sum); //반복되는 과정을 다 보고싶을 때
}
}
}
int sum=0;
int i = 1;
while(i<=10) {
sum +=i;
i++;
}
System.out.println("1에서 10까지의 합:" +sum); //결과물만 보고싶을 때
}
}
//구구단 7단 출력
//7*1 = 7
//7*2 = 14
int i = 1;
int sev;
while(i<=9) {
sev = 7 * i;
System.out.println("7*"+ i + "=" + sev);
i++;
}
(te)//구구단 7단 출력
//7*1 = 7
//7*2 = 14
int i = 1;
while(i<=9) {
System.out.println("7*"+ i + "=" + 7*i);
i++;
}
//1부터 몇까지 더해야 100을 넘지 않는지 알아내는 예제
int i =0;
int sum=0;
while(sum<=100) {
System.out.printf("%d - %d%n",i,sum);
sum +=++i; //전치증감자 사용해야함
}
답 : 0 - 0
1-1
...
13-91
//각자리수의 합을 구하는 문제
int num = 0, sum = 0;
System.out.println("숫자를 써라");
Scanner sc = new Scanner(System.in);
num = sc.nextInt();
while(num!=0) {
sum += num%10;
System.out.printf("sum=%3d num=%d%n", sum, num);
num /=10;
}
System.out.println("각 자리수의 합:" + sum);
>>>숫자를 써라
11234
sum= 4 num=11234
sum= 7 num=1123
sum= 9 num=112
sum= 10 num=11
sum= 11 num=1
각 자리수의 합:11
-Do-while 반복문 : 조건을 실행하기 전에 꼭 먼저 한번은 실행하고 조건을 가져야 할때
(내코드 안돌아강ㅠㅅㅠ)//do-while : 명령을 먼저 실행한 후 조건을 비교
//적어도 1번은 무조건 실행이 필요한 경우
//키보드로부터 숫자를 입력받아 합을 구하자.
//음수를 입력하면 새롭게 다시 입력을 받도록 하자.
Scanner scanner = new Scanner(System.in);
int i=0;
int sum=0;
do {
System.out.println("숫자를 입력해주세요^^");
i = scanner.nextInt();
if(i<0) {
System.out.println("다시 입력해주시겠어요?^^");
}
}while (i>=0);
sum += i;
System.out.println("합은 :" + sum);
(Lecturer ver.) : do-while(음수아닐때까지 돌리는것)과 while(양수일때 더하기)구문을 사용함
Scanner sc = new Scanner(System.in);
int n=0;
do {
System.out.print("숫자를 입력해주세요^^");
n = sc.nextInt();
}while(n<=0); //n에 음수값을 입력하면 do문 무한반복
int sum = 0;
int i=1;
while(i<=n) { //i가 n이 될때까지
sum += i;
i++;
}
System.out.println("1에서 " +n+ "까지의 합:"+sum);
>>>숫자를 입력해주세요: -5
숫자를 입력해주세요: 10
1에서 10까지의 합:55
//2자리 숫자만 입력받아서 출력하세요
Scanner sc = new Scanner(System.in);
int n = 0;
do {
System.out.println("2자리 숫자만 입력해라.");
n = sc.nextInt();
}while(n<10 || n>99);
System.out.println(n+"바르게쳤구나");
★★for문
//for문 : 초기식 -> 조건식 -> 명령문 -> 증감식 : 수평방향
int sum = 0;
for(int i=1;i<=10;i++) {
sum +=i;
}
System.out.println("1에서 10까지의 합: " + sum);
for(int i=1;i<=9;i++) {
System.out.println("7*"+ i + "=" + 7*i);
}
//1~100 사이에 2의 배수 및 3의 배수가 아닌 숫자만 출력하세요.
for(int n = 0;n<=100;n++) {
if(n%2!=0 && n%3!=0)
System.out.println(n+",");
->끝에 콤마 출력안하려면 System.out.println((i==0)?""+n:", "+n);
}
(같은구문)
for(int n = 0;n<=100;n++) {
if(n%2==0 || n%3==0)
continue; (한문장까지는 대괄호 안해줘도 됨)
System.out.println(n+",");
}
-break문(탈출)
반복문에서 빠져나가기 위해 사용
-continue문(조건에 있는 실행문 건너뛰기)
아래에 있는 식을 실행하지 않고 다음번부터의 반복과정을 계속 진행.
-중첩 if문
for(int i=1;i<=5;i++) {
for(int j=1;j<=i;j++) {
System.out.print("*");
}
System.out.println();
}
>>>
*
**
***
****
*****
2장. 자바의 기초 문법
8할: IF문& 배열 2할 : 재귀함수
-배열
-★★배열의 선언, 생성, 이용
[](대괄호) : 배열
배열은 레퍼런스타입
배열의 생성 : 많은 변수들을 넣기 위한 방을 생성한다.
배열의 특징 : 같은 데이터타입만 넣을 수 있다.
배열은 선언뿐만 아니라 생성을 해야함
int arr[]; , arr = new int[5];
배열을 생성 = 레퍼런스타입 (주소값을 넣기 위한 변수를 생성)
배열이름[인덱스];
//1. 배열선언, 생성 분리
int arr[];//배열 선언 -> 주소값을 넣을 수 있는 변수생성
arr = new int[5];//배열 생성 -> int형 변수 5개 생성. 생성된 주소를 arr에 대입
//2 배열선언. 생성 함께
int arr2[]= new int[5];
//3 배열선언, 생성, 초기화 함께
int arr3[] = {1,2,3,4,5};
//for문을 이용해서 전체배열요소를 출력하자.
for(int i=0;i<arr3.length;i++) {
System.out.println("arr3[" +i+ "]=" + arr3[i]);
}
>>> arr3[0]=1
arr3[1]=2
arr3[2]=3
arr3[3]=4
arr3[4]=5
//1. 배열에 사용될 데이터타입은 무엇인가?
//2. 배열의 크기를 결정 =>초과사용 => ArrayIndexOutOfBoundsException
//3. 배열을 어떻게 초기화(직접인덱스, for문, 생성과 동시에)
//4. 배열에 있는 데이터 출력(for문, 향상된 for문)
**개발자 : 고객과의 커뮤니케이션이 필요하다
//구구단 7단의 결과를 배열안에 초기화 후 출력해 보자.
int arr1[] = new int[9];
for(int i=0;i<arr1.length;i++) { //배열의 시작은 0부터이다.
System.out.println("7*"+i+ "=" + 7*i);
}
(강사님) int arr1[] = new int[9];
for(int i=0;i<arr1.length;i++) {
arr1[i] = 7*(i+1);
System.out.println("7*"+(i+1)+ "=" + arr1[i]);
}
7*1=7
7*2=14
7*3=21
7*4=28
7*5=35
7*6=42
7*7=49
7*8=56
7*9=63
Scanner sc = new Scanner(System.in);
System.out.println("국어점수:");
System.out.println("수학점수:");
System.out.println("영어점수:");
int sum = 0;
float ave = 0f;
int kor = sc.nextInt();
int math = sc.nextInt();
int eng = sc.nextInt();
int score[] = {kor, math, eng};
for(int i=0;i<score.length;i++) {
sum += score[i];
}
ave = sum/(float)score.length;
System.out.println("국영수의 총점은:" + sum);
System.out.println("국영수의 평균은:" + ave);
(강사님)Scanner sc = new Scanner(System.in);
int arr[] = new int[5];
System.out.println("국어점수:");
arr[0] = sc.nextInt();
System.out.println("수학점수:");
arr[1] = sc.nextInt();
System.out.println("영어점수:");
arr[2] = sc.nextInt();
arr[3] = arr[0] + arr[1] +arr[2];
arr[4] = arr[3]/arr.length;
int sum = 0;
float ave = 0f;
System.out.println("국영수의 총점은:" + arr[3]);
System.out.println("국영수의 평균은:" + arr[4]);
//문자열 배열을 생성 후 키보드로부터 데이터를 초기화 =>q누르면 결과값
//배열 전체 내용을 출력
Scanner sc = new Scanner(System.in);
String name[] = {};
int len = name.length;
name = new String[len];
char a = 'q';
int count = 0;
for(int i=0;i<name.length;i++) {
System.out.println("문자열을 입력해주시겠어요?");
String input = sc.nextLine();
name[count++]=input;
if(input.equals(a)) break;
for(int i=0;i<count;i++){
System.out.println(name[i] + ", ");
}
(강사님)Scanner sc = new Scanner(System.in);
String name[] = new String[10];
int count = 0;
while(true) {
System.out.println("문자열을 입력해주시겠어요?");
String input = sc.nextLine();
if(input.equals("q")) break;
name[count++(변수)] = input; //count에 상수가 들어가면 덮어쓰기됨. 전치증감자쓰면x
}
for(int i=0;i<count;i++) {
System.out.print(name[i] + ", ");
}
문자열을 입력해주시겠어요?
ab
문자열을 입력해주시겠어요?
cd
문자열을 입력해주시겠어요?
q
ab, cd,
'FULLSTACK > JAVA' 카테고리의 다른 글
JAVA 5차시 - Call by value, Call by reference, 유클리드 호제법(최대공약수 만들기), 재귀함수, arraySort, 선택정렬 (0) | 2020.11.12 |
---|---|
JAVA 주말과제 및 복습 - Mission 6,7,8 & 중복for문 연습 (0) | 2020.11.12 |
JAVA 4차시 - 2차원배열, 중첩for문, 배열의 복사 (0) | 2020.11.12 |
JAVA 2차시 - 변수설정, 연산자, IF문, Switch문 (0) | 2020.11.12 |
JAVA 1차시 - OT&자바실행키&형변환 (0) | 2020.11.12 |