- if문
: 조건을 확인하고 true면 {}중괄호 안의 내용을 실행하고, 아니면 빠져나간다.
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문에 속한 문장이 하나일 경우 중괄호 생략 가능하지만 그냥 괄호쓰는 것이 좋다.
- if - else 문
: if문의 조건이 false일 경우 else로 가서 {}중괄호 안의 내용을 실행한다.
반드시 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 문
: if문이 false이고, 검사하고 싶은 조건이 많은 경우에는 else if를 추가로 여러번 사용하여 조건을 검사할 수 있다. 모든게 false인 경우 if - else문과 마찬가지로 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이상
int kor = 80;
int math = 80;
int eng = 60;
int total = kor + math + eng;
double 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("성적은 '가' 입니다.");
}
int num1 = 80;
int num2 =1000;
int num3=100;
int max;
if( (num1 > num2) && (num1 >num3) ) {
max = num1;
}else if( (num2 > num3) && (num2 >num1) ) {
max = num2;
}else {
max = num3;
}
System.out.println(max);
- switch문
: 조건이 맞는 case 를 찾아가서 break; 까지 실행 후 조건문을 빠져나간다. 만일 조건에 맞는 게 없을 경우 default를 실행한다.
int num = -10;
if(num < 0) {
num = - num;
}
System.out.println("절댓값 : " + num);
- while 문의 형식
초기값;
while(조건식){
반복실행시킬 명령어(들)
증감식
}
- do while 문의 형식
초기값;
do{
반복 수행할 명령어(들);
증감식;
}while(조건식);
- while과 do~while의 차이
while문과 do~while문은 사용하는 방법이 유사.
둘의 차이점은 만약에 처음부터 조건을 만족하지 않은 상황이라면 while문은 반복문을 한번도 실행하지 않을 수 있지만, 조건을 나중에 비교하는 do~while은 어찌되었던 do문을 적어도 한번은 실행한다.
int i=100;
while(i<=3){
System.out.println("hello");
i++;
}
위의 코드는 처음부터 조건을 만족하지 않은 값으로 초기화 되어 있으므로 반복문을 한번도 동작하지 않는다.
그러나 do - while문은
int i=100;
do{
System.out.println("hello");
i++;
}while(i<=3);
위의 코드는 처음부터 조건을 만족하지 않은 값으로 초기화 되어 있으나 조건을 나중에 가서 판별하므로 어찌 되었던 do문을 한번은 실행.
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++; //첫 번째 반복문의 변수 증감
}
int sum = 0;
for(int i = 1; i<=100; i++){
sum += i;
}
System.out.println("1 ~ 100까지의 합 : " + sum);
int sum = 0;
for(int i = 1; i <= 100; i++){
if(i % 2 != 0){
sum += i;
}
}
System.out.println("1 ~ 100까지의 홀수 합 : " + sum);
중간에 break 만나면 true면 조건문을 탈출한다.
중간에 continue 만나면 true면 다시 조건 검사로 돌아간다.
int num = 1;
boolean search = false;
//처음 만나는 5의 배수이자 7의 배수인 수를 찾는 반복문
while(num<100) {
if(((num % 5) == 0) && ((num % 7) == 0)){
search = true;
break;
}
num ++;
}
if(search)
System.out.println("찾는 정수 : " + num);
else
System.out.println("5의 배수이자 7의 배수인 수를 찾지 못했습니다.");
int num = 0;
int count = 0;
while ((num++)<100) {
if(((num % 5) != 0 || (num % 7) != 0))
continue; //5,7의 배수가 아니라면 나머지 건너뛰고 위로 이동
count++; //5,7의 배수인 경우 실행
System.out.println(num); //5,7의 배수인 겨우만 실행
}
System.out.println("1~100까지 숫자 중 5의 배수이자 7의 배수인 숫자 갯수 : " + count);
int a= 90, b=70, c=100;
int max;
max = (a > b) ? (a > c ? a : c) : (b > c ? b : c);
System.out.println("max is "+ max);
for( ; ; ){...} //for 문의 무한루프
while(true){...} //while문의 무한루프
do{ //do - while문의 무한루프
}while(ture)
for(int i = 2; i < 10; i++){
for(int j = 1; j < 10; j++){
System.out.println(i + " * " + j + " = " + (i*j));
}
System.out.println();
}
for(int i = 2; i < 10; i++){
if((i % 2) == 0){
for(int j = 1; j < 10; j++){
System.out.println(i + " * " + j + " = " + (i*j));
}
}
System.out.println();
}
for(int i = 2; i < 10; i++){
if((i % 3) == 0){
for(int j = 1; j < 10; j++){
System.out.println(i + " * " + j + " = " + (i*j));
}
}
System.out.println();
}
*****
*****
*****
*****
*****
for(int i = 0; i < 5; i++){
for(int j = 0; j < 5; j++){
System.out.print("*");
}
System.out.println();
}
*
**
***
****
*****
for(int i = 1; i <= 5; i++){
for(int j = 1; j <= i; j++){
System.out.print("*");
}
System.out.println();
}