오늘은 주말이라 카페에 나와 자습을 하고 들어가고자 한다.
오늘 학습할 주제는 삼항 연산자와 / 제어문이다. 간단하게 학습내용을 이곳에 적어둔 후 정리해서 따로 올리도록 하겠다.
삼항 연산자 (항이 3개)
조건식? true : false
(항) 1 2 3
삼항 조건식을 이용해 문제를 만들어 보고자한다.
Q.다음 중 프로그래밍 언어가 아닌것은?
* 1.java
* 2.python
* 3.c언어
* 4.망둥어
정담은 4. 망둥어를 프로그램으로 만들어보겠다.
String q = "Q. 다음중 프로그래밍 언어가 아닌것은?\n"
+ "1.java\n"
+ "2.python\n"
+ "3.C언어\n"
+ "4.망둥어";
String q = "Q. 다음중 프로그래밍 언어가 아닌것은?\n" ;
+ "";
글이 길어질때 \n뒤에 엔터키를 눌러주면 아래에 + ""; 가 생기면서 자동으로 글을 이어준다.
Scanner sc = new Scanner(System.in);
int choice = 0;
System.out.println(q);
choice = sc.nextInt();
//3-위에 추가를 해준다.
//1-이렇게 식을 만들고 나와같은 초보는 이렇게 생각한다.
// System.out.println(choice == 4? "정답입니다." : "오답입니다");
//2-물론 값은 나오지만 우리는 값은 변수에 담아야 한다는거 잊지 말아야 한다.
//3-위에 추가를 해준다.
String result = "";
//4-그리고 아래처럼 바꿔준다.
int answer = 4;
//System.out.println( choice == answer? "정답입니다." : "오답입니다.");
//5-그러면3항식을 이용하여 정리하게 된다.
//6- 그 후 ( choice == answer? "정답입니다." : "오답입니다."); 이 통째가 답이라는것을 이해하고 System.out.println 은 따로 나타내준다.
//result = choice == answer? "정답입니다." : "오답입니다.";
// System.out.println(result);
/*그다음 엉뚱한 답을 입력할경우에 대한 답으 만들어야 한다.
오답에서 만들어줘야한다는것 그럼 오답에서 3항 연산자를 다시한번 만들어 줘야한다.
*/
result = choice == answer? "정답입니다." : choice >= 1 && choice <= 4 ? "오답입니다." : ""
+ "잘못입력 했습니다";
System.out.println(result);
//3항 연산자 안에 3항 연산자를 한번더 넣은거다.
*삼항 연산자는 가독성이 떨어지고 사용하기 불편하기 때문에 간단한걸 만들때 사용하며
이번엔 더 많이 사용하는 제어문을 배워보겠다.
제어문은 1.조건문 2.반복문 이 있다.
1.조건문은
- if문
- switch문이 있다
if문에 대하여 알아보겠다.
if문은 기본적으로
if(조건식){
실행할 문장
위의 조건식에 상관없이 모두 검사
}
인데 이를 위에서 만든 퀴즈로 대입해 본다면,
if(answer){
result
}
이다 .
그리고 if가 3가지가 나오는 경우 모든 식을 조건식에 상관없이 검사하게 된다.
if(조건식){
실행할 문장
위의 조건식에 상관없이 모두 검사
}if(조건식){
실행할 문장
}if(조건식){
실행할 문장
}
ex.)숫자를 1-10까지 중에 맞추기를 한다고 예를들어보겠다. 답이 1일 경우 if문은 1이라는 답을 다 찾아도 계속해서 2~10까지 검사를 하기 때문에 비효율 적이다.
그러나 ex.)밥 먹었니? 네 , 양치했니? 아니요, 공부했니? 같이 계속 물어봐야하는경우 사용한다.
else가 들어가면 if조건문이 참이면 아래 식을 검사하지 않지만 거짓이면 다음 식을 검사하게 된다.
if(조건식){
실행할 문장
위의 조건식이 거짓일 때만 검사
참일 때에는 검사 안함.
}else if(조건식){
실행할 문장
}else{
실행할 문장
}
ex.위와 같은 검사 방법일때 1이 정답인걸 찾게되면 멈추게 된다. 효율적이다. 그러나 밥 먹었니? 공부했니? 같은 식을 만들때는 비 효율적이다.
'프로젝트 공부' 카테고리의 다른 글
(TIL)2차원 배열(값의 합 구하기) (0) | 2020.07.17 |
---|---|
(TIL) scanner의 오류 (0) | 2020.07.16 |
(TIL) Scanner/ 형변환 (0) | 2020.07.15 |
(TIL) 누적 연산자 / (for문)(while문) (0) | 2020.07.07 |
(TIL) 제어문 조건문 (if문 추가)/(switch문) (0) | 2020.07.06 |