2.        条件判断 
a)        要打印1-10的数据,打印到10就不打印了,所以循环变量最大只能到10:i <= 10; 
3.        循环操作 
a)        打印出1-10的数据,每次打一个 
b)        第1次打印1,这时候i=1,第2次打印2,这时候i=2,依次类推,所以我们只要把i打印出来就行了 
4.        改变循环变量,每循环一次i就自加1:i++;(作为循环操作的一部分,写在while循环的大括号里) 
5.        代码实现 
public class HelloWorld1 { 
        public static void main(String[] args) { 
 
                int i = 1; 
                while (i <= 10) { 
                        System.out.println(i); 
                        i++; 
                } 
        } 
} 
g)        示例3:实现1-10的数字相加求和,用while循环实现 
h)        分析: 
1.        根据上面的例子,我们可以得到从1-10的数字。我们只要把这些数字加起来,放到一个变量里,就能得到它们的和了 
2.        循环变量的初始值: 
a)        从1开始累加,所以循环变量应该从1开始, 
b)        我们声明一个循环变量:int i = 1; 
3.        条件判断 
a)        要实现1-10的数字相加求和,累加到10就不累加了,所以循环变量最大只能到10:i <= 10; 
4.        循环操作 
a)        用一个变量来保存累加后的和:int sum = 0;这个变量的声明要在循环结构的外面。 
b)        每次循环,将本次得到的数与以前的和相加,得到新的和。 
5.        改变循环变量,每循环一次i就自加1:i++;(作为循环操作的一部分,写在while循环的大括号里) 
6.        代码实现 
public class HelloWorld1 { 
        public static void main(String[] args) { 
                int sum = 0; 
                int i = 1;                 
                while (i <= 10) { 
                        sum = sum + i; 
                        i++; 
                } 
                System.out.println(sum); 
        } 
} 
i)        示例4:录入班级人数和学员成绩,计算班级学员的平均成绩 
j)        分析: 
1.        循环变量的初始值:从第一个开始输入:int i = 1; 
2.        循环条件:目前录入的成绩数目小于总人数 
a)        使用i做计数器,每循环一次就递增1,即每输入一个学员成绩就递增1 
b)        只要i小于等于班级总人数,就继续从控制台接收输入的学员成绩 
3.        循环操作:录入学生成绩,并累加求和 
4.        循环变量的改变:每循环一次,人数就要加1:i++(作为循环操作的一部分,写在while循环的大括号里) 
5.        代码实现: 
public class HelloWorld5 { 
        public static void main(String[] args) { 
                String  classNo; // 班级号 
                int  stuNum; // 班级的学生人数 
                int  score; // 学生分数 
                int  sum = 0; // 学生分数总和 
                int  avg; // 学生成绩平均值 
 
                System.out.print("请输入班级号: "); 
                Scanner input = new Scanner (System.in); 
                classNo = input.next(); 
 
                System.out.print("请输入该班级的学员总数:"); 
                stuNum = input.nextInt(); 
 
                int i = 1; 
                while (i <= stuNum) { 
                        System.out.print("请输入学号" + i + "的成绩:"); 
                        score = input.nextInt();// 从键盘接收学生成绩 
                        sum = sum + score; 
                        i++; 
                } 
                avg = sum / stuNum; 
                System.out.println("该班级学员的平均成绩为: " + avg); 
        } 
} 
k)        示例5:还是吃饺子,不过这次可以随便吃,只不过每吃一个就要问一下,还要不要吃下一个,如果要吃,就再吃一个,就这样循环,直到不想吃才停下来。 
l)        分析: 
1.        这次循环的初始条件是什么呢 
a)        就是第一次回答要吃:“y”,只要回答的是“y”,就可以再吃下一个,如果回答了“n”,当然就不吃了 
b)        所以我们要在控制台上接收输入的字符串“y”或是“n” 
i.        我们在前面用input.nextInt()将控制台输入的字符串转换成int类型的数据再赋值给int类型的变量,现在我们要直接得到字符串 
ii.        从控制台获得一个字符串:String answer = input.next(); 
2.        循环条件: 
a)        要判断回答的是不是“y”,只要回答的是“y”就要吃饺子(继续循环),回答“n”才不吃了(结束循环) 
b)        比较两个String类型的值是否相等的方法: 
i.        使用字符串的equals方法 
ii.        equals语法: 
aString.equals(bString);//比较String类型变量aString是否等于 
// bString,如果相等,结果为true;如果不相等,结果为false 
3.        循环操作: 
a)        当然是吃饺子了 
b)        吃完饺子后还要再问一下,要不要再吃一个 
c)        用变量接收控制台输入的回答 
4.        循环变量的变化: 
a)        用变量接收控制台输入的回答,如果没有变化:回答“y”,那就要继续循环,如果回答了“n”,就结束循环了(条件不成立了) 
5.        代码实现: 
import java.util.Scanner; 
 
public class HelloWorld1 { 
        public static void main (String [] args) { 
                Scanner input = new Scanner (System.in); 
                System.out.print("要不要吃饺子:"); 
                String answer = input.next (); 
                while (answer.equals ("y")) { 
                        System.out.println("吃饺子。"); 
                        System.out.print("还吃饺子么?"); 
                        answer = input.next (); 
                } 
        } 
} 
6.        我们改动一下上面的例子,改变提问的方式:不问要不要吃饺子了,问他吃饱了没有,如果没有,也就是回答“n”,就给他吃饺子,否则就不给他吃了。 
7.        分析:这里其实只是条件发生的变化:以前是和“y”比较,现在是和“n”比较 
a)        方法1:把answer.equals("y")中的“y”改成“n” 
b)        方法2:仍然和“y”比较,可以在比较结束后对结果取反,在前面加个“!”就行了。 
3)        使用while循环的常见问题 
a)        永远都不会退出的循环称为死循环:一定要记得循环操作中要有改变循环条件的语句: 
public class HelloWorld { 
        public static void main (String [] args) { 
                int i = 0; 
                while (i < 4) { 
                        System.out.println("欢迎中兴3G学员"); 
                        // 这里缺了什么?(应该在这里改变循环条件:i++) 
                } 
        } 
} 
b)        注意检查循环次数是否满足需求:如果不满足,要进行相应的修改 
public class HelloWorld { 
        public static void main (String [] args) { 
                int i = 1; 
                while (i < 4) {// 条件应该是: i < 5 
                        System.out.println("欢迎中兴3G学员"); 
                        i++; 
                } 
        } 
} 
c)        注意:如果一开始条件就不满足,while循环一次都不执行 
public class HelloWorld { 
        public static void main (String [] args) { 
                int i = 1; 
                while (i > 5) {// 条件应该是: i < 5 
                        System.out.println("欢迎中兴3G学员"); 
                        i++; 
                } 
        } 
} 
d)        我们在编写代码时,遇到错误是很正常的事情,作为一个软件工程师,在我们的工作中,排除程序中错误的时间一般要比写代码的时间还要多。要经常编写代码,这样才能多遇到错误,通过对错误的认真分析,提高我们的编码能力。 
e)        我们还会学习专门的排错技术。这里说的错误不是写代码时的错误,而是程序在运行时发生的错误。因为代码的编写错误在我们用的Eclipse里会自动给出。程序运行时的错误我们会有专门的学习。 
4)        小结 
a)        2006年培养学员8万人,每年增长25%,请问按此增长速度,到哪一年培训学员人数将达到20万人? 
b)        分析: 
1.        循环初始条件:2006年,有8万人 
2.        循环条件:培训学员人数没有达到20万人 
3.        循环操作:每次增加25%,并累加求和,还要算出当年是哪一年 
4.        这里的循环操作里同时也包含了循环变量的改变 
c)        代码 
public class HelloWorld { 
        public static void main(String[] args) { 
                int year = 2006; // 年份 
                int students = 80000; // 学生数 
                while (students < 200000) { 
                        students = (int) (students * (1 + 0.25)); 
                        year++; 
                        System.out.println(year + "年,培训 " + students + "人"); 
                } 
                System.out.println(year + "年,年培训人到达20万人"); 
        } 
} 
d)        小结: 
1.        while循环可以解决固定循环次数的问题 
2.        也可以解决没有固定循环次数的问题,而且主要是用来解决没有固定循环次数的问题 
3.        while循环是先判断,后执行 
 |   
        
 
    
    
    
     
 
 |