Java反復文(/while/do-while/名前付き反復文)

7226 ワード

複文
   -for
   -while
   -do-while
	  
文脈
for(初期化;条件式;増分式){}
        - 조건식이 거짓이면 중단
        -포함하고 있는 문장들을 정해진 횟수만큼 반복하는 문장
	
 for(int i = 1; i <= 10; i++){
	 //초기화: 조건식과 증감식에 사용할 변수 초기화
	 //조건식: 연산결과가 참이면 블럭안의 내용을 수행
	 //증감식: 변수를 증가/감소 시켜 반복문을 제어
   System.out.println(i+"번째 반복"); //for문 안에서만 사용 가능
 }
1から10までの合計を保存
	               int sum = 0; 
	                sum += 1;
	                sum += 2;
			sum += 3;
			sum += 4;
			sum += 5;
			sum += 6;
			sum += 7;
			sum += 8;
			sum += 9;
			sum += 10;	
			System.out.println(sum);
            
1から10に1を増やす
            sum=0;
			for(int i = 1; i <= 10; i++){
				sum += i;
			}
			System.out.println(sum);
			
10から1に減少
			sum = 0;
			for(int i = 10; i >= 1; i--){
				sum += i;		
			}
			System.out.println(sum);
            
質問:1から100まで偶数と
	방법1		sum = 0;
			for(int i = 2; i <= 100; i+=2){
			   sum += i;
			}
			System.out.println(sum);
			
	방법2		sum = 0;
			for(int i = 2; i <= 100; i+=2){
			   if(i % 2 == 0){
				   sum += i;
			   }
			}
			System.out.println(sum);
			
1~100の奇数の和
방법1		  sum=0;
		  for(int i=1; i<=100; i+=2){
			  sum += i;
		  }
		  System.out.println(sum);
		  
방법2		  sum=0;
		  for(int i=1; i<=100; i+=2){
			  if(i%2 == 1){
				  sum +=i;
			  }
		  }
		  System.out.println(sum);
		  
九九段出力
		   2*1=2
		   2*2=4
		   2*3=6
		   2*4=8

		  for(int i=1; i <= 9; i++){
			  System.out.println(2+"*"+i+"="+i*2);
		  }
          
          //구구단 9단을 출력해주세요
		  
		  for(int i=1; i<= 9; i++){
			  System.out.println(9+"*"+i+"="+i*9);
		  }
		  
レイヤ2からレイヤ9への1回の出力
		 for(int i=2; i<=9; i++){   //대가리
			 for(int j=1; j<=9; j++){   //다리
				 sum = i * j;
				 System.out.println(i + "*" + j + "="+sum);
			 }
		 }
         
gugudan全体を横に印刷してください
		         2(안쪽 변수)*1(밖에 있는 변수)=2 3*1=3 4*1=4

				 2*2=4 3*2=6 4*2=8	 

				 2*3=6 3*3=9 4*3=12
                                         ...

            
            for(int i = 1; i <= 9; i++){
			
             for(int j = 2; j <= 9; j++){
			  System.out.print(j +" * "+ i +" = "+ i*j+"\t");
			 }
             System.out.println();
		   }
           
ドア
	-while(조건식){ }  - 조건식에 boolean
	-포함하고 있는 문장들을 조건식이 만족하는 동안 반복하는 문장
        -반복횟수가 정확히지 않은 경우(모를때)에 주로 사용
aに2を掛けると1000以上に何回掛けるか-繰り返し回数が分からない
            int a = 1;
            int count = 0;
            while(a < 1000){
        	a *= 2;
        	count++;
        	System.out.println(count+":"+a);
        }
do-whlie文
-do{}whlie(条件式);->条件式エラー時に繰り返しを終了
-少なくとも1回実行してください
デジタルゲーム
        int answer = (int)(Math.random()*100)+1;
        int input = 0;
        Scanner s = new Scanner(System.in);
        do{
        	System.out.println("1~100사이의 수를 입력해주세요>");
        	input = Integer.parseInt(s.nextLine());
        	
        	if(answer < input){
        		System.out.println(input+" 보다 작습니다.");
        	}else if(input < answer){
        		System.out.println(input+"보다 큽니다.");
        	}else{
        		System.out.println("정답입니다!");
        	}
        }while(input != answer);
名複文
        outer : for(int i=2; i<=9; i++){
        for(int j=1; j<=9; j++){
        if(j==5){ //5일때 빠져 나가는 것
break; //最近の複文を出る.
break outer;//outerという名前の重複文を出ます.
continue; //最近の繰り返し文の現在の繰り返しシーケンスから離れます.
continue outer;//outerという名前の現在の重複シーケンスを終了します.
     i가2를 빠져나가 3이 되는것. outer의 증감식으로 가는것
        		}
        		System.out.println(i + " * "+ j +" = "+ i * j);
        	}
        	System.out.println();
        }
        
星をたたく
    System.out.println("*****");
    System.out.println("*****");
    System.out.println("*****");

        for(int i = 1; i <= 3; i++){
    	for(int j = 1; j <= 5; j++){
    		System.out.print("*");
    	}
    	 System.out.println();
         
星をたたく
    System.out.println("*");
    System.out.println("**");
    System.out.println("***");
    System.out.println("****");
    System.out.println("*****")

      for(int i=1; i<=5; i++){
      for(int j=1; j<=i; j++){
    	    System.out.print("*");  //안쪽의 반복횟수가 변함
      }
   
      System.out.println(); 
     
      } 
      
星をたたく
    System.out.println("*****");
    System.out.println("****");
    System.out.println("***");
    System.out.println("**");
    System.out.println("*");

        for(int i=5; i>=1; i--){
    	for(int j=1; j<=i; j++){
    		 System.out.print("*");
    }
    System.out.println();  
}
3つのランダムな数字に対して
              스트라이크: 숫자와 자릿수가 똑같을때 1S
              볼: 숫자는 똑같은데 자릿수가 다를때 1B
              아웃: 아예 같은 수가 없을때 1O
    
	1-9까지 숫자를 서로다르게 랜덤발생
	숫자를 입력받아서 스트라이크, 볼, 아웃을 만들어낸다.
	
	Scanner s = new Scanner(System.in);
	int st = 0;
	int ba = 0;
	int ou = 0;
	
	int r1;
	int r2;
	int r3;
	
	
	do{
		 r1 = (int)(Math.random()*9)+1;
	     r2 = (int)(Math.random()*9)+1;
	     r3 = (int)(Math.random()*9)+1;
	}while(r1==r2 || r1==r3 || r2==r3);
		
	
	
	do{
		
	 int input= 100*r1+10*r2+1*r3;	
		
     st = 0;
     ba = 0;
     ou = 0;
	
       System.out.println("첫째 자리를 입력해 주세요>");
        int num1 = Integer.parseInt(s.nextLine());
    	System.out.println("둘째 자리를 입력해 주세요>");
    	int num2 = Integer.parseInt(s.nextLine());
    	System.out.println("셋째 자리를 입력해 주세요>");
    	int num3 = Integer.parseInt(s.nextLine());
    	
    	if(num1 == r1){ //첫째 스트라이크
    		st += 1;
    	}else if(num1 == r2){ //첫째 볼
    		ba += 1;
    	}else if(num1 == r3){
    		ba += 1;
    	}else if(num1 != r1){ //첫째 아웃
    		ou += 1;
    	}else if(num1 != r2){
    		ou += 1;
    	}else if(num1 != r3){
    		ou += 1;
    	}
    	
    	if(num2 == r2){ //둘째
    		st += 1;
    	}else if(num2 == r1){
    		ba += 1;
    	}else if(num2 == r3){
    		ba += 1;
    	}else if(num2 != r1){
    		ou += 1;
    	}else if(num2 != r2){
    		ou += 1;
    	}else if(num2 != r3){
    		ou += 1;
    	}
    	if(num3 == r3){ //셋째
    		st += 1;
    	}else if(num3 == r2){
    		ba += 1;
    	}else if(num3 == r1){
    		ba += 1;
    	}else if(num3 != r1){
    		ou += 1;
    	}else if(num3 != r2){
    		ou += 1;
    	}else if(num3 != r3){
    		ou += 1;
    	}
    	
  
    	System.out.println(input+" st:"+st+" ba:"+ba+" ou:"+ou);
    	
	}while(st!= 3);