Java语言程序设计(基础篇) 第五章 循环

第五章 循环

5.2 while循环

  1.while循环的语法如下:

    while(循环继续条件){

    //循环体

    语句(组);

    }

  2.程序:提示用户为两个个位数相加的问题给出答案

 1 package com.chapter5;
 2 
 3 import java.util.Scanner;
 4 
 5 public class RepeatAdditionQuiz {
 6     
 7     /**
 8      * 提示用户为两个个位数相加的问题给出答案     
 9      */
10 
11     public static void main(String[] args) {
12 
13         int number1=(int) (Math.random()*10);
14         int number2=(int) (Math.random()*10);
15         
16         Scanner input=new Scanner(System.in);
17         
18         System.out.println("请输入:"+number1+" + "+number2+" 的结果");
19         int answer=input.nextInt();
20         
21         while(number1+number2!=answer){
22             System.out.println("答案错误,请重新输入 "+number1+" + "+number2+" 的结果");
23             answer=input.nextInt();
24         }
25         
26         System.out.println("正确答案是:"+answer);
27         
28     }
29 
30 }

  

  3.程序:猜数字

 1 package com.chapter5;
 2 
 3 import java.util.Scanner;
 4 
 5 public class GuessNumber {
 6     
 7     /**
 8      * 猜数字 
 9      */
10 
11     public static void main(String[] args) {
12         
13         int number=(int) (Math.random()*101);
14         
15         Scanner input=new Scanner(System.in);
16         System.out.println("猜测的数字在0-100之间包含0和100");
17     
18         int guess=-1;
19         while(guess!=number){
20             System.out.println("输入您猜测的数字");
21             guess=input.nextInt();
22             
23             if(guess==number){
24                 System.out.println("猜测正确!");
25             }else if(guess>number){
26                 System.out.println("您猜测的数字大了!");
27             }else{
28                 System.out.println("您猜测的数字小了!");
29             }
30         }
31     }
32 
33 }

 

5.3 do-while循环

  1.首先执行循环体,然后计算循环继续条件。如果计算结果为true,则重复执行循环体;如果为false,则终止do-while循环。

  2.程序:TestDoWhile

 1 package com.chapter5;
 2 
 3 import java.util.Scanner;
 4 
 5 public class TestDoWhile {
 6 
 7     public static void main(String[] args) {
 8         
 9         int data;
10         int sum=0;
11         
12         Scanner input=new Scanner(System.in);
13         
14         do{
15             System.out.print("输入一个整数(如果是0输入结束):");//Enter an integer(the input ends if it is 0)
16             data=input.nextInt();
17             sum+=data;
18         }while(data!=0);
19         
20         System.out.println("总和为:"+sum);
21         
22     }
23 
24 }
5.4 for循环

  1.语法:

  for(初始操作;循环继续条件;每次迭代后的操作){

  //循环体

  语句(组);

  }

5.5 采用哪种循环

  while循环和for循环都称为前测循环(pretest loop),因为继续条件是在循环体执行之前检测的,do-while循环被称为后测循环(posttest loop),因为循环条件是在循环体执行之后检测的。

5.6 嵌套循环

  1.程序:乘法表

 1 package com.chapter5;
 2 
 3 public class MultiplicationTable {
 4     
 5     /**
 6      * 乘法表
 7      */
 8 
 9     public static void main(String[] args) {
10         
11         System.out.println("Multiplication table");
12         System.out.print("  ");
13         
14         for(int i=1;i<=9;i++){
15             System.out.print("   "+i);
16         }
17         System.out.println("\n----------------------------------------");
18         for(int i=1;i<=9;i++){
19             System.out.print(i+"|");
20             for(int j=1;j<=9;j++){
21                 System.out.printf("%4d",i*j);
22             }
23             System.out.println();
24         }
25         
26     }
27 
28 }
5.8 示例学习

  求最大公约数

 1 package com.chapter5;
 2 
 3 import java.util.Scanner;
 4 
 5 public class GreatestCommonDivisor {
 6     
 7     /**
 8      * 求最大公约数 
 9      */
10 
11     public static void main(String[] args) {
12         
13         Scanner input=new Scanner(System.in);
14         
15         int gcd=1;//1是一个公约数,但不是最大公约数
16         int k=2;
17         
18         System.out.println("请输入第一个整数:");
19         int number1=input.nextInt();
20         System.out.println("请输入第二个整数:");
21         int number2=input.nextInt();
22         
23         while(k<=number1 && k<=number2){
24             if(number1%k==0 && number2%k==0){
25                 gcd=k;
26             }
27             k++;
28         }
29         System.out.println(number1+" 和 "+number2+" 的最大公约数为:"+gcd);
30     }
31 
32 }

 

posted @ 2016-12-21 11:01  Young_Yang_Yang  阅读(543)  评论(0编辑  收藏  举报