문제나 개발을 하다보면 입력 받는 개수를 모를때 계속 입력을 받는 경우가 있다


     while(true){
             int input=sc.nextInt();
             if(input!=0) {
                 System.out.println(input);
         }

         편한거 쓰면 된다.

        do {
            int input=sc.nextInt();
            System.out.println(input);
            if(input==0) {
                eq=false;
            }
        }while(eq);

그럴때 이런식으로 while() 이나 do while() 쓰면 계속해서 입력을 받을 수 있다,

Scanner 

Scanner를 사용하기 위해서는 import 를 통해서 외부 클래스를 호출

import java.util.Scanner;


다음은 Scanner 객체 생성을 해주어야 하는데

Scanner sc = new Scanner(System.in);//System.in 키보드 입력을 의미함

String name;

int Math;


name= sc.next();

Math= sc.nextInt();


이런식으로 값을 입력 받는다.


next(): 공백 이전까지의 문자열 입력받음

next + 자료형() : nextInt(), nextDouble()

nextLine(): 문자열 전체 입력 

sc.next().charAt(0);: 문자 하나 입력 받는 방법.

==, 와 equals() 의 차이점

equals 메소드는 비교하고자 하는 대상의 내용 자체를 비교하지만,

== 연산자는 비교하고자 하는 대상의 주소값을 비교함.

직관적으로 느낄 수 있는 차이는 문자열 비교할때는 equals() 메소드를 사용하다는 것이다.


        

boolean result5 = name1.equals(name3); // 사용법

boolean result6 = (name1 == name4);

        

System.out.println("equals결과 :"+result5);  // 결과 true

System.out.println("==연산결과 :"+result6);  // 결과 false


equals 메소드는 재정의 되어 논리적인 문자열 비교를 하기 때문이다. 



String 클래스 한정적으로 equals 메소드가 문자열 내용을 비교하게 재정의 되어있다.
다른 객체를 비교할때 equals 메소드를 사용하면 똑같이 주소값으로 비교하게 된다. 그래서 객체 내용을 비교하고 싶으면 다시 재정의해서 사용해야한다



+ Recent posts