package basic;
import java.util.Scanner;
public class ForEx3 {
public static void main(String[] args) {
// for(int i = 0; i < 10; i++) {
// //어떤 상황이 벌어지면 멈추라는 말이 자연스러우므로 어떤 상황에 해당하는 조건을 걸어줘야 함
// System.out.println(i);
//
// if(i==7) { //0부터 7까지 출력
// break;
// }
for (int i = 0; i < 10; i++) {
if (i == 7) {
break;
}
System.out.println(i); //0부터 6까지 출력
//구조가 어떻게 되냐에 따라서 값이 달라지니 주의
}
}
}
package basic;
import java.util.Scanner;
public class ForEx3 {
public static void main(String[] args) {
// for (int i = 0; i < 10; i++) {
// System.out.println(i);
// continue;
// System.out.println(i); //컴파일에러
// }
// for (int i = 0; i < 10; i++) {
// // 반복하다가 continue를 만나면 그 밑 부분은 건너뛰고 다시 돌아라!!
//// System.out.println(i);
// if (true) {
// continue;
// }
// System.out.println(i); //출력이 안됨
// }
for (int i = 1; i <= 10; i++) {
if (i % 2==0) {
continue;
}
System.out.println(i); //홀수만 출력(if문은 짝수를 건너뛰어라 라는 뜻)
}
}
}
for = 반복횟수를 안다. (~하는동안,예약어)
while = 반복횟수를 모른다.
for문의 문법
for ( 초기식; 종료식; 증감식 ) {
System.out.print(반복 횟수 or 변수를 입력해서 활용)
}
for문은 문법을 외워야하고 증감식부분은 비워도됨
돌아가는 구조 : 초기식 > 조건식 > 반복실행블럭 > 증감식
반복실행블럭; > 조건식 > 반복실행블럭 > 증감식
}
//1 ~ 10
for(int i = 1; i <= 10; i++) {
System.out.println(i);
}
// 64 ~ 83
// for(int i = 63; i < 83;) {
// System.out.println(i);
// i++;
// -7 ~ 39
//
// for(int i = -7; i < 40;) {
// System.out.println(i);
// i++;
For문 예제
// 17 ~ 59
// for(int i = 16;;) {
// if(i >= 59) break;
// i++;
// System.out.println(i);
// }
// 9 ~ -27
// for(int i = 10;;) {
// i--;
// if(i <= -28) break;
// System.out.println(i);
// 192 ~ 247
// for(int i = 192;;) {
// System.out.println(i);
// if(i >= 247 ) break;
// i++;
// 64~92
// for (int i = 63; i <92; ) { // 초기식은 과거 종료식은 현재
// i++;
// System.out.println(i);
// }
//17~ -24
// for(int i = 17; i > -25;) { // 초기식은 현재 종료식은 i--;을 거쳐서 돌아왔기 때문에 과거
// System.out.println(i);
// i--;
// }
// 211 ~ 263
// for(int i = 210; i<263; ) { //초기식은 i++;을 거쳐서 왔기때문에 과거 종료식은 현재
// i++;
// System.out.println(i);
// }
// 117 ~ 63
for(int i = 118; ;) { //종료식이 비어있다는건 true값을 의미
if(i <= 63) break;
i--;
System.out.println(i);
}
종료식을 적어주는 것과 if break를 사용하는 것의 차이는 구조를 파악할때 종료시점을 어디에 걸어주느냐 때문
(중간) 종료지점이 없으면 무한루프
종료 걸어주기 → 숫자같은 경우에는 작은 수가 되면 종료.
가급적 for를 쓰기
반복을 몇번할 지 모르는 상황에서는 사용(ex 게임에서 시작하려면 아무 키나 누르시오.)
// 21 ~ 39
// int i = 20; //과거
//
// while(i<39); { // 마찬가지로 while()안에 true값만 가능 비워둘수없음
// i++;
// System.out.println(i);
// }
// //-5 ~ -27
// int i = -4; //과거
//
// while(i > -27) { //현재
// i--;
// System.out.println(i);
// }
// // 15 ~ -4
// int i = 16; //미래
// while(true) {
// i--;
// System.out.println(i);
// if(i <= -4) break; //현재
// }
//
// 47 ~ 91
int i = 46;
while(true) { //과거
i++;
if(i >= 92) break; //??
System.out.println(i);
}
import java.util.Scanner;
public class WhileEx {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int num;
int i = 0, j = 0;
while (true) {
System.out.println("----------------------------");
System.out.println("1.예금 | 2.출금 | 3.잔고 | 4.종료");
System.out.println("----------------------------");
System.out.print("선택> ");
num = sc.nextInt();
if (num == 1) {
System.out.print("예금액> ");
i = sc.nextInt();
} else if (num == 2) {
System.out.print("출금액> ");
j = sc.nextInt();
} else if (num == 3) {
System.out.printf("잔고> %d\n", i - j);
} else if(num == 4) {
break;
}
// sc.close();
}
System.out.println("\n\n프로그램 종료");
}
}
import java.util.Scanner;
public class WhileEx2 {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in); //(System.in)은 입력 스트림
String inputText; //do 블럭 안에 선언하면 while문에서 변수를 사용할 수 없음
do {
//do while문은 무조건 시작하자마자 뭔가를 하고 판단하라는 것이므로
//가장 많이 쓰이는 패턴은 값을 입력받고 판단할 경우
System.out.print(">");
inputText = sc.nextLine();
System.out.println(inputText);
}while(!inputText.equals("q"));
}
}
class Main {
public static void main(String[] args) {
// while( 조건식(반복) ) {
// 반복실행블럭;
// }
// 9 ~ 37
// int i = 8;
//
// while( i < 37 ) {
// i++;
// System.out.println(i);
// }
// -11 ~ -31
int i = -11;
while( i > -32) {
System.out.println(i);
i--;
}
// 119 ~ 83
int i = 120;
while( true ) {
i--;
System.out.println(i);
if( i <= 83) break;
}
// 44 ~ 67
int i = 44;
while( true ) {
if( i >= 68) break;
System.out.println(i);
i++;
}
// =================================================
// do {
// 반복실행블럭;
// } while( 조건식(반복) );
// 24 ~ 61
int i = 23;
do {
i++;
System.out.println(i);
} while(i < 61);
// 83 ~ 141
int i = 83;
do {
System.out.println(i);
i++;
} while(i <= 141);
// 19 ~ 36
int i = 18;
do {
i++;
if(i >= 37) break;
System.out.println(i);
} while(true);
// 6 ~ -27
int i = 6;
do {
if(i <= -28) break;
System.out.println(i);
i--;
} while(true);
}
}
package basic;
public class IfEx {
public static void main(String[] args) {
//조건이 하나만 있는 세상
if(true) {
System.out.println("참이면 나올 결과");
}
//조건이 두가지(참과 거짓, 참일 수도 있고 거짓일 수도 있는)있는 세상
if(false) {
System.out.println("참이면 나올 결과");
} else {
System.out.println("거짓이면 나올 결과");
}
//조건이 세가지 이상 있는 세상
if(false) { // 1)
System.out.println("1)참이면 나올 결과");
} else if(false){ // 2)
System.out.println("2) 참이면 나올 결과");
}else { //
System.out.println("위 조건에 부합하지 않을 경우 나오는 나머지 부분");
}
}
}
import java.util.Scanner;
public class Test {
public static void main(String[] args) {
//case1 if( 조건식 ) {
참실행블럭; // 삼항조건연산자와 같은 방식 (참일때x 거짓일때y)
else {
}
}
//case2 if ( 조건식) {
참실행블럭; // 삼항조건연산자와 다르게 거짓일때의 식이 필요하지 않음
}
//case3 if (조건식 ) {
참실행블럭;
else if( 조건식 ) {
거짓실행블럭;
else if( 조건식 ) {
거짓실행블럭;
else if( 조건식 ) {
거짓실행블럭;
else {
}
}
}
}
package basic;
public class VariableScopeEx2 {
public static void main(String[] args) {
int var = 15;
// 제어문 (if, for, while)
//if문의 가장 기본 형태
if (true) {
int var2 = 20;
System.out.println(var);
System.out.println(var2);
}
System.out.println(var2); //if문 안에 var2를 선언했기때문에 밖에서 적용이 될 수 없음.
//{} 범위(영역), 영역에서만 인식되는 개념이 있다. name scope(변수명이 인식되는 범위)
// if (false) {
// System.out.println("이것은 참이므로 찍힘"); //명제화시킬것
// }
}
}
class Main {
public static void main(String[] args) {
int age = 25;
boolean man = true;
if(age >= 19) {
if(man) {
System.out.println("성인 남성 : 25000원");
}else {
System.out.println("성인 여성 : 21000원");
}
}else {
System.out.println("청소년 : 15000원");
}
}
}
int age = 19;
if (age >=12 && age <19) { // 삼항 조건 연산문은 참일때 거짓일때 값을 적어야 하지만 if는 하나만 적어도 됨
System.out.println("청소년입니다. ");
}
else if (age <=19) {
System.out.println("성인입니다. ");
}
int age = 18;
if (age >= 19 && age < 25) {
System.out.println("19세 이상 25세 미만입니다. ");
}
if (age <19 || age <=26) {
System.out.println("사람입니다. ");
문제
정수 1 :
정수 2 :
5와 7의 차는 2
정수 1 :
정수 2 :
10과 3의 차는 7
import java.util.Scanner;
class Test {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int n1, n2;
int result;
System.out.print("정수1 : ");
n1 = sc.nextInt();
System.out.print("정수2 : ");
n2 = sc.nextInt();
if(n1 > n2) {
result = n1 - n2;
} else {
result = n2 - n1;
}
System.out.printf("%d 와 %d 의 차는 %d", n1, n2, result);
sc.close();
}
}
import java.util.Scanner;
public class Test {
public static void main(String[] args) {
int n, n1;
Scanner sc = new Scanner(System.in);
System.out.print("정수 1 : ");
n = sc.nextInt();
System.out.print("정수 2 : ");
n1 = sc.nextInt();
System.out.printf("%d 와 %d 의 차는 :%d", n, n1, n > n1 ? n - n1 : n1 - n);
sc.close();
}
}