#당신이 야식을 사랑할 확률 ## 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문의 다른 형태라고 이해해야하는지요?
## 답변 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]; // 반복 내용... } ```