5장 조건과 반복 ②.

Slides:



Advertisements
Similar presentations
멘토링 2 주차 장 프로그래밍을 위한 자바의 자료형  값이 변하지 않는 상수  메모리 기억공간인 변수.
Advertisements

5 장 조건과 반복 ②. Contents Counting and Looping [while 문 사용 ] Powers of 2 [while 문 사용 ] More Guessing [do 문 사용 ] Election Day [do 문 사용 ] Finding Maximum &
명품 JAVA Programming 제 3 장 반복문, 배열, 예외처리.
어서와 Java는 처음이지! 제3장선택과 반복.
프로그래밍 개론 Ⅰ 제 3장. 클래스와 객체의 사용 ①.
제 7주 2015년 1학기 강원대학교 컴퓨터학부 담당교수: 정충교
어서와 Java는 처음이지! 제2장 자바 프로그래밍 기초.
컴퓨터 응용 및 실습 Part1. OOP&Java Programming data type Review
Recursion SANGJI University KO Kwangman
IntArray[0] int length 5 intArray 객체 제 3 장 반복문, 배열, 예외처리.
객체지향 프로그래밍.
어서와 Java는 처음이지! 제2장 자바 프로그래밍 기초.
7장 배열 ②.
어서와 Java는 처음이지! 제4장 배열.
Java Seminar 6.
Java Presentation 중간 시험2 풀이
제 4장 문 장 배정문 혼합문 제어문 표준 입출력.
제6장 제어(Control) 6.1 구조적 프로그래밍(Structured Programming)
윤 홍 란 제3장 클래스와 객체의 사용-1 윤 홍 란
Chapter 02 자바 기본구조 자바 프로그래밍의 기초적인 문법을 소개
[INA470] Java Programming Youn-Hee Han
명품 JAVA Programming 제 7 장 제네릭과 컬렉션.
명품 JAVA Essential.
제7장 제어구조 I – 식과 문장.
명품 JAVA Essential.
명품 JAVA Essential.
명품 JAVA Programming 제 4 장 클래스와 객체.
Power Java 제4장 자바 프로그래밍 기초.
10장 객체-지향 프로그래밍 II ©창병모.
7장 배열 ②.
Power Java 제10장 배열.
객체지향 언어와 클래스, 객체 ㅎㅎ 개요 클래스의 선언, 객체의 생성 및 속성 참조 방식 멤버 변수 메소드 한빛미디어(주)
Choi, Namseok Java 기초 (Java의 제어문과 배열) Choi, Namseok
명품 JAVA Essential.
이쁜 코드 작성하기 마이에트 레이더즈팀 중원.
명품 Java Programming.
최용술 장 Thread 최용술
2장 자바환경과 자바 프로그램 2.1 자바 개발 환경 2.2 자바 통합환경 2.3 자바 응용 프로그램과 애플릿 프로그램
윤 홍 란 4 장 클래스 작성 윤 홍 란
5장 조건과 반복 ①.
제2장 데이터 및 수식.
인터페이스(Interfaces) 강원대학교.
This, static, final 지정 예약어 자바 4대 중첩 클래스
김 정 석 Web Programming 김 정 석
주소록 프로그램.
7장 배열 ①.
6장 객체-지향 설계 ①.
제 4주 2014년 1학기 강원대학교 컴퓨터학부 담당교수: 정충교
Chapter6 : JVM과 메모리 6.1 JVM의 구조와 메모리 모델 6.2 프로그램 실행과 메모리 6.3 객체생성과 메모리
제2장 데이터 및 수식.
6장 객체-지향 설계 ①.
어서와 Java는 처음이지! 제4장 배열 IT응용시스템공학과 김형진 교수.
03. 안드로이드를 위한 Java 문법 제목. 03. 안드로이드를 위한 Java 문법 제목.
WAP Java Seminar
Ch.1 Iterator Pattern <<interface>> Aggregate +iterator
제 2장 어휘구조와 자료형 토 큰 리 터 럴 주 석 자 료 형 배 열 형.
[INA470] Java Programming Youn-Hee Han
컴퓨터공학실습(I) 3주 인공지능연구실.
Java IT응용시스템공학과 김형진 교수 5장. 객체지향 개념 public class SumTest {
Chap02 객체 지향 개념 2.1 객체지향(object-oriented)과 절차지향(procedural-oriented)
자바 5.0 프로그래밍.
5장 조건과 반복 ①.
루프와 카운트 Looping and counting
Chapter 02. 소프트웨어와 자료구조.
Java 3장. 자바의 기본 구조 I : 변수, 자료형, 연산자 public class SumTest {
JVM의 구조와 메모리 모델 JVM의 내부 구조 클래스 파일 클래스 로더 메소드(method) 영역 힙(heap) 영역
창의인성 두뇌계발 교사교육 3월 생각튼튼리더 1주. 세상에서 제일 똑똑똑한 뇌 2주. 황금요술공,검정요술공 3주. 브레이니 웨이키 웨이키 4주. 생각튼튼 리더가 되었어요.
Chapter 4 클래스 작성.
Java 5장. 객체지향 개념 public class SumTest {
자바 암호 프로그래밍 Java Cryptography Programming
Presentation transcript:

5장 조건과 반복 ②

Contents Counting and Looping [while문 사용] Powers of 2 [while문 사용] More Guessing [do문 사용] Election Day [do문 사용 ] Finding Maximum & Minimum Values [for문 사용] Counting Characters [for문 사용] Using the coin class [for문 사용]

Counting and Looping // **************************************************************** // LoveCS. java // // while loop 을 사용하여 “I love Computer Science!!”을 원하는 만큼 // 프린트 하시오. public class LoveCS { public static void main(String[] args) final int LIMIT = 10; int count = 1; while (count <= LIMIT){ System.out.println("I love Computer Science!!"); count++; }

Counting and Looping [Cont.] LoveCS.java를 다음과 같이 수정하시오. 1. 상수 LIMIT를 사용하여 사용자가 원하는 만큼 메시지를 출력한다. 변수를 선언하여 사용자의 응답을 저장하고 loop을 제어한다. 2. 라인과 메시지, 출력횟수를 함께 출력한다. 그림 참조[사용자가 3을 입력하였을 때, 다음과 같이 프린트 해야 한다.] 1 I love Computer Science!! 2 I love Computer Science!! 3 I love Computer Science!! Printed this message 3 times.

Counting and Looping [Cont.] LoveCS.java를 다음과 같이 수정하시오. 3. 변수를 하나를 추가하여 메시지 출력 첫째 줄부터 N번째 줄까지의 합을 계산하여 출력한다.[그림 참조] 1 I love Computer Science!! 2 I love Computer Science!! 3 I love Computer Science!! Printed this message 3 times. The sum of the numbers from 1 to 3 is 6.

Powers of 2 PowersOf2.java // **************************************************************** // PowersOf2.java// // powers of 2 를 구하는 문제 import java.util.Scanner; public class PowersOf2 { public static void main(String[] args) int numPowersOf2; //계산되는 powers of 2 의 개수 int nextPowerOf2 = 1; // 현재 power of 2 int exponent; //Exponent for current power of 2 – loop의 개수 계산 Scanner scan = new Scanner(System.in); System.out.println("How many powers of 2 would you like printed?"); numPowersOf2 = scan.nextInt(); //powers of 2 의 개수를 메시지로 출력 //exponent 초기화-- the first thing printed is 2 to the what? while ( ) // 현재 power of 2 를 출력 // 다음 power of 2 를 찾기 -- how do you get this from the last one? // increment exponent }

Powers of 2[Cont.] PowersOf2.java는 사용자로 부터 integer를 입력 받아 2의 루승을 구한다. 1. Math.pow를 사용하지 않는다. 예를 들면 사용자가 4를 입력하였을 때 다음과 같은 결과가 나와야 한다. Here are the first 4 powers of 2: 1 2 4 8

Powers of 2[Cont.] 2. 위의 프로그램을 다음과 같은 결과가 나오게끔 수정하시오. Here are the first 4 powers of 2: 2^0 = 1 2^1 = 2 2^2 = 4 2^3 = 8

Election Day[투표 관리 시스템] 두 후보의 선거 결과를 취합하는 프로그램인 Election.java 를 완성하시오. 각 선거구에 대해서 두 후보의 득표수를 입력 받는다. 더 입력할 선거구가 있는지 사용자에게 물어봐서, 더 입력할 선거구가 있는 동안 계속 입력을 받는다. 최종적으로, 전체 득표수와 백분율을 출력한다. 두 후보가 각각 몇 개의 선거구에서 승리했고, 비긴 선거구는 몇 개인지 출력한다.

투표 관리 시스템 (cont.) import java.util.Scanner; public class Election { public static void main (String[] args) int votesForTom; // 각 선거구에서 Tom의 득표수 int votesForSusan; // 각 선거구에서 Susan의 득표수 int totalTom; // Tom의 전체 득표수 int totalSusan; // Susan의 전체 득표수 String response; // 선거구가 더 있는지에 대한 질문의 답을 저장할 변수(y or n) Scanner scan = new Scanner(System.in); System.out.println (); System.out.println ("Election Day Vote Counting Program"); // 초기화 // 각 선거구에서 투표 결과를 취합 (Loop) // 결과 출력 }

최대, 최소값 찾기 하루 동안 매시간마다 온도를 읽어 들여, 그 최대값과 최소값을 찾는 프로그램인 Temps.java를 완성하시오. 최대값 구하기 최대값을 저장할 변수 maxTemp 선언 Loop에 들어가기 전에 아주 작은 값으로 (-1000) 초기화 Loop 안에서 최대값과 현재의 온도를 비교하여, 그 결과에 따라 최대값 갱신 Loop 밖에서 결과 출력 최대값 발생 시간 구하기 온도의 최대값이 발생된 시간을 저장할 변수 timeOfMax 선언 Loop 안에서 적절히 이 값을 갱신 결과 테스트 첫번째로 넣은 값이, 마지막으로 넣은 값이, 중간에 넣은 값이 각각 최대값으로 잘 적용되는지 테스트한다. 최소값도 위와 마찬가지의 방법으로 구한다.

최대, 최소값 찾기 (cont.) import java.util.Scanner; public class Temps { public static void main (String[] args) final int HOURS_PER_DAY = 24; int temp; // 읽어들인 온도를 저장할 변수 Scanner scan = new Scanner(System.in); System.out.println (); System.out.println ("Temperature Readings for 24 Hour Period"); for (int hour = 0; hour < HOURS_PER_DAY; hour++) System.out.print ("Enter the temperature reading at " + hour + " hours: "); temp = scan.nextInt(); // 매시간 온도를 읽어들임 } //결과를 출력하시오

문자 개수 세기 공백을 비롯한 여러 가지 문자의 개수를 세는 프로그램인 Count.java를 완성하시오. 공백 개수 세기 읽어 들인 문장에서 한 글자, 한 글자 공백인지 검사한다. 문장 전체를 돌기 위하여 for문과 length()메소드를 사용한다. 한글자, 한글자 공백인지 검사하기 위하여 if문과 charAt()메소드를 사용한다. ‘a’, ‘e’, ‘s’, ‘t’ 의 개수 세기 대소문자 구분 없이 모두 센다. 공백을 세기 위해 사용했던 if문을 switch문으로 수정한다. 검사를 여러 번 하도록 확장 “quit”을 입력하기 전까지, 검사가 계속 반복되도록 확장한다.

문자 개수 세기 (cont.) import java.util.Scanner; public class Count { public static void main (String[] args) String phrase; // 검사할 문장 int countBlank; // 공백의 개수 int length; // 문장의 길이 char ch; // 검사할 글자 Scanner scan = new Scanner(System.in); System.out.println (); System.out.println ("Character Counter"); // 검사할 문장을 읽어들이고, 그 문장의 길이를 구한다. System.out.print ("Enter a sentence or phrase: "); phrase = scan.nextLine(); length = phrase.length(); // 공백의 개수 초기화 countBlank = 0; // 공백의 개수 세기 // 결과 출력 System.out.println ("Number of blank spaces: " + countBlank); }

동전 던지기 동전을 100회 던져, 연속으로 계속 앞면이 나오는 횟수의 최대값을 구하는 프로그램인 Runs.java를 완성하시오. 이때, 동전을 던지고 그 결과를 알려주는 Coin 클래스 (Coin.java) 를 이용한다.

동전 던지기 (cont.) // ************************************************** // Coin.java // // 던져질 수 있는 두 면을 갖는 동전을 표현한다. public class Coin { public final int HEADS = 0; public final int TAILS = 1; private int face; // --------------------------------- // 초기에 동전을 던져서 동전을 설정한다. public Coin () flip(); } // ---------------------------------- // 상태값을 무작위로 선택함으로써 동전을 던진다. public void flip() face = (int) (Math.random() * 2); // -------------------------------------- // 동전이 앞면인지 뒷면인지, 정수값으로 리턴한다. // -------------------------------------- public int getFace() { return face; } // 동전의 현재 상태를 스트링으로 반환한다. public String toString() String faceName; if (face == HEADS) faceName = "Heads"; else faceName = "Tails"; return faceName;

동전 던지기 (cont.) // ******************************************************************** // Runs.java // 동전을 100회 던져, 앞면이 계속 나오는 횟수의 최대값을 구하는 프로그램 import java.util.Scanner; public class Runs { public static void main (String[] args) final int FLIPS = 100; // 동전을 던지는 횟수 int currentRun = 0; // 현재 연속으로 앞면이 나온 횟수 int maxRun = 0; // 연속으로 앞면이 나온 횟수의 최대값 Scanner scan = new Scanner(System.in); // Coin 객체를 생성 // 동전을 100회 던진다. for (int i = 0; i < FLIPS; i++) // 동전을 던지고, (flip()이용) // 그 결과를 출력한다.(toString()을 묵시적으로 이용) // 연속으로 앞면이 나오고 있는 횟수 갱신 // 연속으로 앞면이 나온 횟수의 최대값 계산 } // 결과 출력