1. 중괄호 쓰지 않는 for문, while문
if문과 마찬가지로 바로 아래 1줄만 for문 내부 코드로 생각하고 이외의 코드는 for문 내부 코드가 아니라고 생각한다
while문도 마찬가지다.
public class Main {
public static void main(String[] args) {
for (int i = 5; i < 7; i++)
System.out.println(i); // for 내부 코드
System.out.println(2 * 2); // for 내부 코드가 아님
}
}
5
6
4
2. 공백을 두고 한줄로 출력하기
python에서는 리스트에 담아서 *을 붙여서 출력했지만..
java에서는 for문을 이용해 System.out.print(i + " "); 방식으로 가능하다.
public class Main {
public static void main(String[] args) {
for(int i = 5; i<=17; i++){
System.out.print(i + " ");
}
}
}
3. 여러 줄에 걸쳐 입력을 받고자 할때
한줄이나 두줄이면 일일이 sc.nextInt();로 써줄 수 있겠지만, 10줄, 100줄이나 있으면... 이걸 언제 sc.nextInt();를 써서 다 받을까?
이럴때는 for문을 이용해서 받으면 되겠다
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
// 10줄에 걸쳐 정수를 받아 홀수의 개수를 출력
Scanner sc = new Scanner(System.in);
int count = 0;
for(int i = 1; i<=10; i++){
int n = sc.nextInt();
if(n % 2 == 1){
count++;
}
}
System.out.print(count);
}
}
5
10
2
7
3
9
100
7
4
6
5
4. 증감식 변화시키기
자바에서 반복문은 for(초기식; 조건식; 증감식) { 수행 코드}로 이루어져 있다는 것을 알고 있다.
그리고 여기서 수행 과정을 잘 이해하고 있어야겠다.
1) 초기식을 먼저 보고
2) 조건식이 맞는지 확인하고
3) 수행코드를 수행하고
4) 증감식을 수행한다
그러므로 수행코드에 증감식을 바꾸는 코드를 넣었다면, 증감식을 매 반복문마다 바꿀 수 있을 것이다.
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
// 여기에 코드를 작성해주세요.
Scanner sc = new Scanner(System.in);
int a = sc.nextInt();
int b = sc.nextInt();
int k;
for (int i = a; i <= b; i += k){
System.out.print(i + " ");
if(i % 2 == 1){
k = i;
} else{
k = 3;
}
}
}
}
2 13
2 5 10 13
5. 무한루프 만들기
자바에서 조건식에 숫자, truthy, falsy 등을 넣을 수는 없다
그래서 while (true)로 무한루프를 만들 수 있다.
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
// 여기에 코드를 작성해주세요.
Scanner sc = new Scanner(System.in);
while(true){
int n = sc.nextInt();
if(n < 25){
System.out.println("Higher");
} else if (n > 25){
System.out.println("Lower");
} else {
System.out.println("Good");
break;
}
}
}
}
혹은 for문에서 조건식, 초기식, 증감식을 모두 안쓰고 for (;;)로 무한루프를 만들 수 있다
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
// 0을 입력할때까지 계속 입력을 받아 출력하는 코드
Scanner sc = new Scanner(System.in);
for (;;) {
int n = sc.nextInt();
if (n == 0){
break;
}
System.out.println(n);
}
}
}
728x90
'알고리즘 > Java 기초' 카테고리의 다른 글
자바 자료구조1 -동적배열(ArrayList) (0) | 2023.02.23 |
---|---|
자바 초보에서 알고리즘 B형까지 도전기4 -배열 필수지식1- (0) | 2023.02.22 |
자바 초보에서 알고리즘 B형까지 도전기2 -사칙연산, 조건문 필수지식- (0) | 2023.02.21 |
자바 초보에서 알고리즘 B형까지 도전기1 -입력과 출력 필수지식- (0) | 2023.02.20 |
자바에서 숫자를 문자로 문자를 숫자로, 문자열을 배열로 자료형 변환 배우기 + 나눗셈의 몫과 나머지 (0) | 2023.02.15 |