A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© yangjijin 中级黑马   /  2014-6-30 11:25  /  1750 人查看  /  1 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

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循环是先判断,后执行

1 个回复

正序浏览
只有java基础的情况,没有java高新技术加强以及两道面试题的总结
虽然你的学习日记数量上已经达到要求,但是内容不符合,你的学习日记中只有java基础总结,没有java高新技术加强和两道面试题的学习日记总结,如果你都学习过,请补齐学习日记后,再在报名系统中提交入学资格申请。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马