티스토리 뷰

JAVA

190628 반복문 연습

猫猫 2019. 6. 28. 14:09
반응형
/////////////두 개의 수를 입력받고 첫번째 수가 짝수 이면 두 수를 더하고 아니면 error	
		System.out.print("첫번째 수를 입력>>");
		Scanner scan = new Scanner(System.in);
		
		String tmp = scan.nextLine();		
		int num1 = Integer.parseInt(tmp);
		
		System.out.print("두번째 수를 입력>>");			
		String tmp1 = scan.nextLine();
		int num2 = Integer.parseInt(tmp1);	
		
		if(num1 %2 ==0 ) {
			int sum = num1+num2;
			System.out.println(sum);
		}else if(num1%2 ==1) System.out.println("error");
        
//////////////////키보드로 숫자를 입력받아서 입력받은 수만큼 *을 for문을 이용하여 출력
		System.out.print("별 몇개 찍? >>> ");
		Scanner scan = new Scanner(System.in);
		int num = Integer.parseInt(scan.next());
		
		for(int i =1; i<=num; i++) {
			System.out.print("*");
			if(i%5==0 && i!=1) {//심심해서 5개당 엔터구현				
				System.out.print("\n");				
			}					
		}
//////////////////////키보드로 1 + 2 - 3 * 4 / 5 % switch case문으로 활용
		System.out.print("숫자 입력 >>");
		
		Scanner scan = new Scanner(System.in);
		int op = Integer.parseInt(scan.next());
		
		switch(op){
			case 1 :
				System.out.println("+");
				break;
			case 2 :
				System.out.println("-");
				break;
			case 3 :
				System.out.println("*");
				break;
			case 4 :
				System.out.println("/");
				break;
			case 5 :
				System.out.println("%");
				break;		
		}		       
//////////////////////////////////while문 이용하여 입력받은 숫자만큼 * 찍기
		
		System.out.print("별 몇개 찍? >> ");
		Scanner scan = new Scanner(System.in);
		int num = Integer.parseInt(scan.next());
		
		while(num!=0) {		
			num--;			
			if(num%5==0) {
				System.out.print("\n");	
			}
			System.out.print("*");		
		}
//이 구문은 에러가 있는데,  초기값 때 무조건 한 줄 엔터가 들어가게 되어있다
//이건 수정해야함
////////////////////두개의 수를 입력받아 교환하는 프로그램
	Scanner scan = new Scanner(System.in);
	System.out.print("처음 숫자입력 하세여 >>> ");
	
	int num1 = Integer.parseInt(scan.next());
	System.out.print("두번째 숫자입력 하세여 >>> ");
	int num2 = Integer.parseInt(scan.next());
	int tmp= 0;
	System.out.printf("전: %d, %d \n", num1, num2);
	tmp = num1;
	num1 = num2;
	num2 = tmp;
	System.out.printf("후: %d, %d \n", num1, num2);

//////////숫자를 키보드로 10개 입력받아서 짝수만의 합과 홀수만의 합을 구할것
/////////////////////////////////////////배열로 해봄		
		Scanner scan = new Scanner(System.in);
		int[] num = new int[10];
		int e_sum=0;
		int o_sum=0;
		
		for(int i =0; i<10; i++) {
			System.out.printf("%d 번째 숫자입력>>", i+1);
			num[i] = Integer.parseInt(scan.nextLine()); //스캐너변수명.nextLine은 한 줄을 입력받고 , integer.parseInt는 그걸 변환 시키니.. 
														//num[i] 번째 배열에 저장시키는건 입력받는 값을 정수로 변환 시키는 것. 
			
			if(num[i] % 2 == 0) { //num[i]번째 값이 짝수면 짝수 합에 누적
				e_sum+=num[i];
			}
			else if(num[i]%2 !=0) { //num[i]번째 값이 홀수면 홀수 합에 누적
				o_sum += num[i];
			}
		}		
		System.out.printf("짝수의 합계는 %d\n", e_sum);
		System.out.printf("홀수의 합계는 %d", o_sum);
//////////////이걸 왜 배열로 했을까.. 왜그랬을까? 그냥 머리속에서 배열외엔 답이 없다 생각했었다
////////////////////////////////배열말고 그냥
		int even_sum=0;
		int odd_sum = 0;
		
		for(int i =0; i<10; i++) {
		
			System.out.printf("%d 번째 숫자입력>>", i+1); 
		
			Scanner scan = new Scanner(System.in); 
			int test= Integer.parseInt(scan.nextLine()); //10번 내내 변수에 입력받은 한줄 자체를 int변환시켜서 넣는다.
			
			if(test%2==0) { //변수 값이 짝수면 누적
				even_sum += test;
			}
			else if(test%2!=0) { //변수값이 홀수면 누적
				odd_sum +=  test;
			}			
		}
		
		System.out.printf("짝수의 합계는 %d\n", even_sum);
		System.out.printf("홀수의 합계는 %d", odd_sum);
/////////////강사님이 의도한 바는 이것
		

굳이 어렵게 꼬아서 생각하느라고 진도도 안나간 배열이 튀어나왔다 

굳이 배열 쓸 필요도 없는 거였는데

반응형

'JAVA' 카테고리의 다른 글

190628 배열연습-1  (0) 2019.06.28
190628 배열 연습  (0) 2019.06.28
190628 숫자 두 개 입력받고 연산자 입력받아 연산하기  (0) 2019.06.28
190627 배열 값 셔플  (0) 2019.06.27
190627 배열 sum,avg, max, min 구하기  (0) 2019.06.27