
import java.util.Scanner;
public class Input {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.println("문자열1: ");
String str1 = sc.nextLine();
System.out.println("문자열2: ");
String str2 = sc.next();
System.out.println("정수: ");
int number1 = sc.nextInt();
System.out.println("실수: ");
double number2 = sc.nextDouble();
System.out.println("문자열1: " + str1);
System.out.println("문자열2: " + str2);
System.out.println("정수: " + number1);
System.out.println("실수: " + number2);
}
}
문1) 이름, 나이, 주소, 연락처를 입력받아 출력하는 프로그램 작성
import java.util.Scanner;
public class Input2 {
public static void main(String[] args) {
String name =null;
int age = 0;
String address =null;
String pn = null;
Scanner sc = new Scanner(System.in);
System.out.println("이름: ");
name = sc.next();
System.out.println("나이: ");
age = sc.nextInt();
sc.nextLine(); //<--- 핵심 키워드 (nextLine()의 오류를 막아준다
System.out.println("주소: ");
address = sc.nextLine(); //띄어쓰기 포함 space바 사용시 예외)
System.out.println("연락처: ");
pn = sc.next();
System.out.println("사용자의 이름은 " + name + "이고 나이는 " + age + "살입니다.");
System.out.println("주소는 " + address + "에 거주중입니다.");
System.out.println("연락처는 " + pn + "입니다.");
}
}
nextLine() 오류 해결방법
why?
nextInt 이후 nextLine()하기전, nextLine()을 한번 더 작성하여 개행문자 제거
nextLine()로 읽어들인 후 Integer.parseInt()
문2) 정수3개를 입력받아 정수3개를 출력하고 최대값, 최소값을 출력하는 프로그램 작성
import java.util.Scanner;
public class Input2 {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int a = 0;
int b = 0;
int c = 0;
int max = 0;
int min = 0;
System.out.print("정수 3개 입력:");
a = sc.nextInt();
b = sc.nextInt();
c = sc.nextInt();
max = a;
max = b > max ? b : max;
max = c > max ? c : max;
min= a;
min = b < min ? b : min;
min = c < min ? c : min;
System.out.println("a: " + a);
System.out.println("b: " + b);
System.out.println("c: " + c);
System.out.println("최대값: " + max);
System.out.println("최소값: " + min);
}
}
조건문이란? 주어진 조건에 따라 다른 문장을 선택할 수 있도록 프로그래밍하는 것
if(조건식){
수행문; // 조건식이 참일 경우에 이문장을 수행
}
if(조건식){
수행문1; // 조건식이 참일 경우에 이 문장을 수행
}else{
수행문2; // 조건식이 거짓일 경우에 이 문장을 수행
}
public static void main(String[] args) {
int num = 10;
int num2 = 20;
if(num > num2) {
System.out.println("num이 num2보다 큽니다.");
}
else if(num == num2){
System.out.println("num과 num2가 같습니다.");
}
else {
System.out.println("num이 num2보다 작습니다.");
}
}
문3) if문을 활용하여 정수3개를 입력받아 최대값, 최소값을 출력하는 프로그램 작성
import java.util.Scanner;
public class Conditional1 {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int a = 0;
int b = 0;
int c = 0;
int max = 0;
int min = 0;
System.out.println("정수 3개 입력: ");
a = sc.nextInt();
b = sc.nextInt();
c = sc.nextInt();
max = a;
min = a;
if(b>max) max = b;
if(c>max) max = c;
if(b<min) min = b;
if(c<min) min = c;
System.out.println("최대값: "+ max);
System.out.println("최소값: "+ min);
}
}
문4) 1안) If문을 활용하여 시험 성적을 학점으로 계산하는 프로그램을 작성
조건
score가 0점보다 작거나 100점보다 크면 계산불가
score가 90~100점이면 A학점 (95이상 A+)
score가 80~89점이면 B학점 (85이상 B+)
score가 70~79점이면 C학점 (75이상 C+)
score가 60~69점이면 D학점 (65이상 D+)
score가 0 ~ 59점이면 F학점
1안
if(score<0 || score>100) {
System.out.println("계산불가");
}
else {
if(score>89) {
if(score>94) {
grade ="A+";
}
else
grade = "A";
}
else if(score>79) {
if(score>85) {
grade ="B+";
}
else
grade = "B";
}
else if(score>69) {
if(score>75) {
grade ="C+";
}
else
grade = "C";
}
else if(score>59) {
if(score>65) {
grade ="D+";
}
else
grade = "D";
}
else {
grade = "F";
}
System.out.println("점수(" + score + "): " + grade + "학점");
}
}
}
2안
if(score < 0 || score > 100) {
grade = null;
}else if(score > 89) {
grade = "A";
}else if(score > 79) {
grade = "B";
}else if(score > 69) {
grade = "C";
}else if(score > 59) {
grade = "D";
}else {
grade = "F";
}
if(score > 59 && score<101 && (score % 10 > 4 || score == 100)) {
grade +="+";
}
if(grade == null) {
System.out.println("계산불가");
}else {
System.out.println("점수(" + score + "): " + grade + "학점");
}
switch(조건){
case 1 :
수행문1;
break;
.
.
.
default :
}
반복문이란? 반복되는 일을 처리하기 위해 사용하는 것
기본 구조
for(초기화식;조건식;증감식){
수행문;
}
기본 구조
while(조건식){
수행문1; // 조건식이 참일 동안 반복 수행
do{
수행문1;
}while(조건식);
수행문2;
public static void main(String[] args) {
int num = 1;
int sum = 0;
do{
sum += num;
num++;
}while(num <= 10);
System.out.println("1부터 10까지의 합은 " + sum + "입니다");
}
문5) 1~100까지 합을 구하는 프로그램 작성
public static void main(String[] args) {
int sum = 0;
for(int i = 0; i < 100; i++) {
sum += i+1;
}
System.out.println(sum);
}
문5) 변수 a,b 사이의 합을 구하는 프로그램 작성
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int startNumber = 0;
int endNumber = 0;
System.out.println("시작: ");
startNumber = sc.nextInt();
System.out.println("끝: ");
endNumber = sc.nextInt();
int total = 0;
for(int i = 0; i < endNumber - startNumber+1; i++) {
total += i + startNumber;
}
System.out.println("총합: " + total) ;
}
문6) 키보드로 입력받은 횟수만큼 입력받은 a,b를
더하는 프로그램을 작성
반복횟수 :
N번 반복
a:
b:
N번 합 :
-------
총합:
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int count = 0 ;
int total = 0;
System.out.println("반복횟수: ");
count = sc.nextInt();
System.out.println();
for(int i = 0; i < count; i++) {
int a = 0; // 변수 a,b는 for문 밖에서 쓸일이 없기때문에 지역변수로 선언
int b = 0; //
System.out.println(i+1+"번 반복");
System.out.println("a: ");
a = sc.nextInt();
System.out.println("b: ");
b = sc.nextInt();
total += a + b;
total = total+a+b;
System.out.println(i+1+"번 합: "+(a+b));
System.out.println();
}
System.out.println("총합: " + total);
}
for(int i = 0; i< 10; i++) {
for(int j = 0; j<i+1;j++) {
System.out.print("*");
}
System.out.println();
}
결과
for(int i = 0; i< 10; i++) {
for(int j = 0; j<10-i;j++) {
System.out.print("*");
}
System.out.println();
}
결과
for(int i=0; i<10; i++) {
for(int j=0; j<9-i; j++) {
System.out.print(" ");
}
for(int j=0; j<i+1; j++) {
System.out.print("*");
}
System.out.println();
}
결과
for(int i = 0; i< 10; i++) {
for(int j = 0; j<i;j++) {
System.out.print(" ");
}
for(int j =0; j<10-i; j++) {
System.out.print("*");
}
System.out.println();
}
결과
for(int i = 0; i<10;i++) {
for(int j = 0;j<9-i;j++) {
System.out.print(" ");
}
for(int j = 0; j<2*i+1;j++) {
System.out.print("*");
}
System.out.println();
}
결과

public class Method5 {
public static void main(String[] args) {
for(int i = 0; i<5;i++) {
for(int j = 0;j<4-i;j++) {
System.out.print(" ");
}
for(int j = 0; j<2*i+1;j++) {
System.out.print("*");
}
System.out.println();
}
for(int i = 3; i>=0;i--) {
for(int j = 4;j>i;j--) {
System.out.print(" ");
}
for(int j = 1; j<=2*i+1;j++) {
System.out.print("*");
}
System.out.println();
}
}
}
결과
반복횟수 5회의 다이아 찍기
public static void main(String[] args) {
for(int i = 0; i<10;i++) {
for(int j = 0;j<9-i;j++) {
System.out.print(" ");
}
for(int j = 0; j<2*i+1;j++) {
System.out.print("*");
}
System.out.println();
}
for(int i = 8; i>=0;i--) {
for(int j = 9;j>i;j--) {
System.out.print(" ");
}
for(int j = 1; j<=2*i+1;j++) {
System.out.print("*");
}
System.out.println();
}
}
결과
반복횟수 10회의 다이아 찍기
for문
index : 순서가 있는 경우
while문
순서보다 조건이 중요할 때
import java.util.Scanner;
public class While1 {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
String select = null;
while(true) { // 무한루프
System.out.println("x입력시 멈춤: ");
select = sc.nextLine();
if(select.equals("x")||select.equals("X")) {
System.out.println("프로그램을 멈춥니다.");
break;
}
System.out.println("계속 실행!");
}
System.out.println("프로그램 종료됨");
}
}