자바-이클립스 5일차

최성현·2023년 6월 21일
0

Java

목록 보기
6/46

메소드 사용 및 main에 불러오기

클래스 {}안에서 main메소드 말고 따로 만들어서 불러오기
public static void 이름()
{
}

public static void main()
{
메소드 이름();
}

package sist0621;

public class ExForWhile_10 {
	
	public static void test1() {
		//for문으로 1~5까지 합구하기
		int sum=0;
		
		for(int i=1;i<=5;i++)
		{
			sum+=i;
		}
		System.out.println("총 합계는 "+sum);
	}
	
	public static void test2() {
		//1~10까지의 홀수합_for
		int sum=0;
		
		for(int i=1;i<=10;i++)
		{
			if(i%2==0)
				continue;
			sum+=i;
		}
		System.out.println("총 합계는 "+sum);
		
	}
	
	public static void test3(){
		//100까지의 합은 5050	100은 변수로 처리해서 출력하시오...for
		int sum=0;
		int i=1;
		
		for(;i<=100;i++)
			sum+=i;
		System.out.println((i-1)+"까지의 합은 "+sum);
		
	}
	
	//main메서드는	 클래스의 시작과 끝을 담당
	public static void main(String[] args) {
		
		test1(); //위에 만든 메서드를 호출하는 것
		test2();
		test3();

	}

}

팩토리얼/ForSum

public static void factorialTest() {

1!=1
2!=2
3!=6

10! 출력
int result=1;
//factorial의 결과 값(담는 변수)은 무조건 1
//1까지 곱해주기 때문

for(int i=1;i<=10;i++)
{
result*=i;
System.out.println(i+"!="+result);
}
//for문 안에 있기 때문에 범위까지 !(팩토리얼)이 나옴

}

package sist0621;

import java.util.Scanner;

public class ScannerFor_11 {

	
	public static void numSum() {
		//합계를 구할 숫자는?	100
		//1부터 100까지의 합은 5050입니다
		
		Scanner sc=new Scanner(System.in);
		
		int	n; //입력할 수
		
		System.out.print("합계를 구할 숫자는? ");
		n=sc.nextInt();
		
		int sum=0;
		
		for(int i=1;i<=n;i++) //입력한 숫자가 범위의 끝이어야 해서 int i=1 하나 더 선언
			sum+=i;
		
		System.out.println("1부터 "+n+"까지의 합은 "+sum+"입니다");
		
	}
	
	public static void factorialTest() {
		
		//1!=1
		//2!=2
		//3!=6
		
		//10! 출력
		int result=1; //factorial의 결과 값은 무조건 1//1까지 곱해주기 때문
		for(int i=1;i<=10;i++)
		{
			result*=i;
			System.out.println(i+"!="+result);
		}
		//for문 안에 있기 때문에 범위까지 !이 나옴
		
	}
	
	public static void quizFact() {
		//팩토리얼을 구할 숫자를 입력
		//5!=120
		Scanner sc=new Scanner(System.in);
		
		int n;
		
		System.out.println("팩토리얼을 구할 숫자를 입력");
		n=sc.nextInt();
		
		int resum=1;
		
		for(int i=1;i<=n;i++)
			resum*=i;
		System.out.println(n+"!= "+resum);
	} //입력한 수의 팩토리얼만 나오게 for문 나와서 출력
	
	
	public static void main(String[] args) {

		//numSum();
		//factorialTest();
		quizFact();
		
	}

}

while문 숫자탈출

package sist0621;

import java.util.Scanner;

public class WhileTrueCount_12 {

	public static void main(String[] args) {
		/* 
		 * 임의의 수를 입력해서 합계, 평균, 갯수
		 * 단 0을 입력하면 while문을 빠져나가게 하자
		 *  */
		Scanner sc=new Scanner(System.in);
		int su,sum=0; //입력할 수, 합계
		int cnt=0;//갯수
		double avg=0;//평균
		
		while(true)
		{
			System.out.println("숫자입력(종료:0)");
			su=sc.nextInt();
			
			if(su==0) //cnt 밑에 조건문을 두면 종료수(0)도 cnt갯수가 증가해서 cnt++;위에 두어야함
				break;
			
			sum+=su; //입력한 수 하나씩 덧셈
			cnt++; //갯수 하나씩 증가
		}
		avg=(double)sum/cnt;
		System.out.println("입력한 수의 합 "+sum);
		System.out.println("총 입력한 갯수 "+cnt);
		System.out.println("입력한 수의 평균 "+avg);
		
	}

}

while문 문자탈출

package sist0621;

import java.util.Scanner;

public class QuizWhileTrue_13 {

	public static void main(String[] args) {
		/*
		 * 점수를 반복해서 입력하다가 q나 Q를 입력하면
		 * while문을 빠져나온 뒤 총 갯수, 총점, 평균을 출력하시오
		 * 평균은 소수점 1자리
		 * */
		Scanner sc=new Scanner(System.in);
		int count=0,total=0;
		double avg=0;
		String score;
		
		while(true)
		{	
			System.out.println("점수를 입력하세요(q or Q 종료)");
			score=sc.nextLine();
			
			//종료
			//if(score.equals("q")||score.equals("Q"))
			//if(score.equalsIgnoreCase("q")) //equals종류는 q만 적어야
			if(score.charAt(0)=='q' || score.charAt(0)=='Q') //charAt은 q+다른문자 여도 작동
				break;
			
			total+=Integer.parseInt(score); //string을 정수로 변환 후 합계변수에 누적가능
			count++;
		}
		avg=(double)total/count; //둘 다 정수이므로 double로 형변환
		System.out.println("입력한 수의 총 합: "+total);
		System.out.println("입력한 갯수: "+count);
		System.out.printf("총 합의 평균: %.1f",avg);
	}

}
profile
백엔드 개발자로서 성장해 나가는 성현이의 블로그~

0개의 댓글