#당신이 야식을 사랑할 확률
## CODE
```
public class FoodLover {
public static void main (String[] args) {
boolean friedChiken = true;
boolean pizza = false;
boolean jokbal = false;
boolean bossam = true;
boolean ramyun = false;
// 야식 사랑도 측정
//result 값의 문자를 기준으로 사랑도를 측정한다.
//낮음->false의 갯수 기준, 높음->true 갯수 기준
String result = "높음";
int likes = 0;
//하나하나 대입해보는걸 줄이기 위해 배열에 넣고 한번에 대입!
boolean[] foods = {friedChiken, pizza, jokbal, bossam, ramyun};
//boolean likeFood를 food값으로 넘긴다.
for (boolean likeFood : foods) {
likes += (likeFood) ? 1 : 0;
}//1: true , 0: false, like=int, likeFood=boolean, int로 형 변환
//boolean to int type : likes += (likeFood) ? 1 : 0;
if (likes >= 5)
result = "매우 높음";
else if (likes >= 3)
result = "높음";
else if (likes >= 2)
result = "보통";
else
result = "낮음";
// 결과 출력, %s : 문자열
System.out.printf("당신이 야식을 사랑할 확률: %s", result);
}
}
```
## OUPUT
```
당신이 야식을 사랑할 확률: 보통
```
(지난 번 질문에 답변 감사합니다. 설명을 들으니까 훨씬 이해하기 좋더라구요!! )
질문 1 ) 전반적 흐름에 대해 설명해주실 수 있을까요?
-모르는 부분들은 찾아보고 //주석으로 두어가면서 이해를 했는데 부분부분으로는 알겠는데 합쳐서 이해하려니까 잘 모르겠더라구요. 결국에는 완벽한 이해로 이어지지를 못하고 있습니다.ㅠㅠ 설명 부탁드립니다.
질문 2 ) for(boolean : foods)부분 설명 부탁드립니다. for문이 (초기값,조건값,증가값) 이외의 형태이어서 for문의 다른 형태라고 이해해야하는지요?
sehongpark님의 답변
## 답변 1: 전반적 흐름
1. 좋아하는 야식 정보를 생성(boolean 타입)
2. 위 데이터를 배열에 담아 묶음
3. 좋아하는 야식 개수를 반복문을 통해 카운팅
4. 개수에 따라 결과를 출력(조건식 사용: if-else 문 참조)
## 답변 2: foreach 문
foreach문은 반복문의 또 다른 형태로, 덩어리 데이터의 모든 요소를 처리할때 사용합니다.
(일반적 for문 보다 간략)
```
for (boolean f : foods) {
// 반복 내용...
}
```
위 코드를 일반적 for문으로 변경하면 아래와 같습니다.
```
for (int i = 0; i < foods.length; i++) {
boolean f = foods[i];
// 반복 내용...
}
```