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 }