if문 : if의 조건에 부합하면 중괄호 안에 설정해둔 값 출력.
if - else문 : if문의 조건에 맞지 않을 때 나올 값을 else의 {}안에
설정해서 출력시킴. if나 else값 중 하나는 무조건 실행.
if ~ else if ~ else : if,else 둘 다 false일 때, else if에서 설정한 값이 출력됨.
검사하고 싶은 조건이 많을 때 사용. else if는 여러번 사용 가능.
모든게 false값이 나오면 else값이 출력됨.
if문 예제
if(n1 < n2) { // if(boolean 타입을 받는게 와야한다.)
System.out.println("n1 > n2 is true");
//true면 실행, false면 실행안하고 빠져나감.
}
if(n1 < n2) System.out.println("n1 > n2 is true");
//if문에 속한 문장이 하나일 경우 중괄호 생략 가능 but 가능하면 쓰자.
if - else 문 예제
if(n1 == n2) {
System.out.println("n1 == n2 is true");
//true면 실행 후 조건문을 빠져나감
} else {
System.out.println("n1 == n2 is false");
//false면 실행 후 조건문을 빠져나감
}
//if문과 마찬가지로 if절 또는 else 절에 속한 문장이 하나일 경우 중괄호 생략 가능함
if ~ else if ~ else 문 예제
public class Hello {
public static void main(String[] args) {
int num = 120;
if (num <0)
System.out.println("0미만");
else if(num <100)
System.out.println("0이상 100미만");
else
System.out.println("100이상");
//모든 if와 else if 문이 false면 else를 실행
}
}
-> 결과 "100이상"
👀 이건 그냥 내가 궁금해서 물어보고 받은 답변
국어:80 수학:80 영어:60점과 평균을 출력하고, 평균에 따른 수우미양가를 출력하시오.
public class If3 {
public static void main(String[] args) {
// 국어,영어,수학 점수 임의로 넣고, 성적매기기
// 90-수, 80-우, 70-미, 60-양, 가
int kor = 80;
int eng = 60;
int mat = 80;
int total;
double avg;
total = kor + eng + mat;
avg = total / 3.0;
if(avg >= 90) {
System.out.println("수 입니다.");
}else if(avg >= 80) {
System.out.println("우 입니다.");
}else if(avg >= 70) {
System.out.println("미 입니다.");
}else if(avg >= 60) {
System.out.println("양 입니다.");
}else {
System.out.println("가 입니다.");
}
}
}
-> 출력값 "미 입니다."
-80, 33 ,55 = 최대값을 출력하시오.
public class sdfsd {
public static void main(String[] args) {
int num1 = -80;
int num2 = 33;
int num3 = 55;
if ((num1 > num2) && (num1 > num3)) {
System.out.println("최대값은 ? : " + num1);
} else if((num2 > num1) && (num2 > num3)) {
System.out.println("최대값은 ? : " + num2);
} else {
System.out.println("최대값은 ? : " + num3);
}
}
}
switch문
: 조건이 맞는 case를 찾아가서 break까지 실행 후 조건문을 빠져나간다.
만일 조건에 맞는 게 없을 경우 default를 실행한다.
switch(n) 에서 n에는 기본적으로 정수가 온다. (실수는 오면 안된다!)
int n =3;
switch(n) { //n에는 기본적으로 정수가 온다. 실수는 오면 안된다.!
case 1:
System.out.println("Simple Java");
case 2:
System.out.println("Funny Java");
case 3:
System.out.println("Fantastic Java");
default:
System.out.println("The best programming language");
}
System.out.println("Do you like Java?");
이 상황에서는 break가 없어서 출력이 3번째와 그 이후 것도 나온다.
출력 결과물
Fantastic Java
The best programming language
Do you like Java?
int num = -10 을 할당후 해당 정수에 대한 절대값을 출력하는 프로그램을 작성하시오.
public class Hello {
public static void main(String[] args) {
int num = -10;
if(num < 0) {
num = -num;
}
System.out.println("절댓값은 " +num);
}
}
-> 출력값 "절댓값은 10"
while문은 확인해보고 실행.
do while문은 우선 먼저 실행해보고 그 다음에 확인.
while문은 조건이 안 맞으면 한번도 실행 안할 수 있지만
do while문은 조건이 맞지 않더라도 무조건 ‼한 번은‼ 실행한다.
for(초기값; 반복 조건; 증감);
예시
for(int i = 0; i<3; i++){
System.out.println("조건에 맞으면 출력");
}
for문의 실행 순서
변수의 범위는 중괄호 안 for문에서 초기화 구문은 딱 한번만 실행됨
public class sdfsd {
public static void main(String[] args) {
int i=1; //첫 번째 반복문의 변수 초기화
while(i<10) { //'단' 출력을 위한 첫 번째 반복문
System.out.println("\n"+i+"단");
int j=1; //중첩 반복문의 변수 초기화
while(j<10) { //1~9 곱을 위한 중첩된 반복문
System.out.println(i+"x"+j+"="+i * j);
j++; //중첩 반복문의 변수 증감
}
i++; //첫 번째 반복문의 변수 증감
}
}
}
근데 이건 9단까지 다 나오는거긴 한데요...
public class sdfsd {
public static void main(String[] args) {
int i;
int sum = 0;
for(i = 1; i <= 100; i++) {
sum = sum + i;
}
System.out.println("1부터 100까지 더한 값은 " + sum + "입니다.");
}
}
-> 출력 값 "1부터 100까지 더한 값은 5050입니다."
public class sdfsd {
public static void main(String[] args) {
int i;
int sum = 0;
for(i = 1; i <= 100; i++) {
if(i % 2 != 0) {
sum = sum + i;
}
}
System.out.println("1부터 100까지 홀수의 합은 " + sum + "입니다.");
}
}
-> 출력값 "1부터 100까지 홀수의 합은 2500입니다."
break = true인 경우에 반복문을 바로 빠져나옴.
continue = false인 경우에 밑으로 내려가지않고 다시 반복문 처음으로 올라감.
예시
// 처음 만나는 5의 배수이자 7의 배수인 수를 찾는 반복문
public class Hello {
public static void main(String[] args) {
int num = 1;
boolean search = false;
//처음 만나는 5의 배수이자 7의 배수인 수를 찾는 반복문
while(num <100) {
if((num % 5 == 0) && (num % 7 ==0)) {
search = true;
break; //while문을 탈출
}
num++;
}
if(search) {
System.out.println("찾는 정수: " + num);
}else {
System.out.println("5의 배수이자 7의 배수인 수를 찾지 못했습니다.");
}
}
}
1과 1000 사이의 숫자중 3의 배수 이자 5의 배수인 첫번째 수는?
public class sdfsd {
public static void main(String[] args) {
int num = 1;
boolean search = false;
while(num <= 1000) {
if(((num % 3) == 0) && ((num % 5) == 0)) {
search = true;
break;
}
}
if (search)
System.out.println("찾는 정수 : " + num);
}
}
-> 출력값 "찾는 정수 : 15"
public class sdfsd {
public static void main(String[] args) {
int num = 0;
int count = 0;
// 1~1000까지 2의배수이자 3의 배수인 수를 찾고, 몇개인지 카운팅하는 프로그램 작성
while((num++) <= 1000) {
if(((num % 2) != 0) || ((num % 3) != 0)) {
continue; // 2나 3의 배수가 아니라면 나머지 건너뛰고 위로 이동.
}
count++; //2의 배수이자 3의 배수면 카운트함.
}
System.out.println("count : " + count);
}
}
-> 출력값 "count : 166"
126500 의 금액을 한국화폐으로 바꾸었을 때 각각 몇 개의 화폐가 필요한지 계산해서 출력하라.
예) int 126500;
오만원 : 2장
만원 : 2장
오천원짜리 : 1장
천원짜리 : 1장
오백원짜리 : 1개
백원짜리 : 0개
public class sdfsd {
public static void main(String[] args) {
int money = 126500;
int m500, m100, m50, m10, m5, m1;
int temp;
m500 = money/50000;
temp = money - (m500*50000);
m100 = temp/10000;
temp = temp - (m100*10000);
m50 = temp/5000;
temp = temp - (m50*5000);
m10 = temp/1000;
temp = temp - (m10*1000);
m5 = temp/500;
temp = temp - (m5*500);
m1 = temp/100;
System.out.println("50,000원 : " + m500 + "장");
System.out.println("10,000원 : " + m100 + "장");
System.out.println(" 5,000원 : " + m50 + "장");
System.out.println(" 1,000원 : " + m10 + "장");
System.out.println(" 500원 : " + m5 + "장");
System.out.println(" 100원 : " + m1 + "장");
}
}
-> 출력값 :
"50,000원 : 2장
10,000원 : 2장
5,000원 : 1장
1,000원 : 1장
500원 : 1장
100원 : 0장"
사실 무슨 소린지 잘 모르겠어요 ^^....... 코드는 강사님꺼 훔쳐옴 ㅎㅎ
public class sdfsd {
public static void main(String[] args) {
int num1 = 90;
int num2 = 70;
int num3 = 100;
int max;
max = (num1 > num2) ? (num1 > num3 ? num1 : num3) :
(num2 > num3 ? num2 : num3);
System.out.println("큰 수 : " + max);
}
}
-> 출력값 "큰 수 : 100"
네 또 훔쳐왔어요. 모르겠어요
1. for( ; ; ){...}
2. while(true){...}
3. do{
}while(ture)
//for문 무한루프
public class Hello {
public static void main(String[] args) {
for(;;) {
System.out.println("Hello World");
}
}
}
//while문 무한루프
public class Hello {
public static void main(String[] args) {
while(true) {
System.out.println("Hello World");
}
}
}
//do.while 무한루프
public class Hello {
public static void main(String[] args) {
do {
System.out.println("Hello World");
}while(true)
}
}
//무한루프에서 탈출하려면 조건문+break밖에 방법이 없다.
public class Hello {
public static void main(String[] args) {
for(int i = 1; i <= 9; i++) {
for(int j =1; j <= 9; j++) {
System.out.println(i + "*" + j + "=" + (i*j));
}
System.out.println(); // 한 줄 공백 넣기
}
}
}
public class Hello {
public static void main(String[] args) {
for(int i = 1; i <= 9; i++) {
for(int j =1; j <= 9; j++) {
if(i % 2 == 0) {
System.out.println(i + "*" + j + "=" + (i*j));
}
}
System.out.println(); // 한 줄 공백 넣기
}
}
}
public class Hello {
public static void main(String[] args) {
for(int i = 1; i <= 9; i++) {
for(int j =1; j <= 9; j++) {
if(i % 3 == 0) {
System.out.println(i + "*" + j + "=" + (i*j));
}
}
System.out.println(); // 한 줄 공백 넣기
}
}
}
public class Hello {
public static void main(String[] args) {
for(int i = 1; i < 6; i++) {
for(int j = 1; j < 6; j ++) {
System.out.print("*");
}
System.out.println();
// println은 자동으로 줄바꿈됨. print는 줄바꿈 안됨
// print로 줄바꿈하려면 이스케이프 써야댐 + "\n" 사용
}
}
public class Hello {
public static void main(String[] args) {
for(int i = 1; i <= 5; i++) {
for(int j = 1; j <= i; j++) {
System.out.print("*");
}
System.out.println();
}
}
}
강사님의 코드를 훔쳐온 정향상의 코드를 훔ㅊㅕ가는 나.. (14번)