配套视频教程
本文B站配套视频教程
几个问题
张三oracle考试成绩未达到本人的指标。为了表明本人勤奋学习的信心,他决定写一百遍“好好学习,天天向上!”
循环构造语法
特点:先判断,再执行
实现打印50份试卷
剖析是否蕴含反复操作?
应用while循环的步骤
- 确定循环条件和循环操作
- 套用while语法写出代码
- 查看循环是否可能退出
一个练习
老师每天查看张三的学习工作是否合格,如果不合格,则持续进行。
老师给张三安顿的每天的学习工作为:上午浏览教材,学习实践局部,下午上机编程,把握代码局部。
- 剖析是否存在反复操作
- 应用while循环实现
- 确定循环条件和循环操作
- 套用while语法写出代码
- 查看循环是否可能退出
提醒:判断字符串是否相等应用equals函数
String input = "no";
while(input.equals("no"))
{
System.out.println("合格了吗?(yes/no):");
Scanner scanner = new Scanner(System.in);
//接管用户输出
input = scanner.next();
if(input.equals("no"))//阐明不合格
{
System.out.println("学习学习");
}
}
System.out.println("实现学习工作");
练习二
2012年造就学员10万人,每年增长20%,请问按此增长速度,到哪一年培训学员人数将达到100万人?
提醒:循环条件和循环操作别离是什么?
2、2013年培训学员数量 = 100000 * (1 + 0.2 )
3、int year = 2012;
double students = 100000;
while …
public class whileDemo2 {
public static void main(String[] args) {
// 2012年造就学员10万人,每年增长20%,
// 请问按此增长速度,到哪一年培训学员人数将达到100万人?
int year = 2012;
double personCount = 100000;
while(personCount <= 1000000)
{
//减少年数
year++;
//减少人数(1.2)
personCount = personCount*1.2;
System.out.println(year+"年"+personCount+"人");
}
System.out.println(year);
}
}
程序调试
在编写程序过程中有时也呈现谬误,但不好发现和定位谬误,有没有好的办法呢?
- 通过代码浏览或者加输入语句查找程序谬误
- 当程序结构越来越简单时,须要专门的技术来发现和定位谬误,就是“程序调试”
调试例子
程序输入1~5这5个数字
int i = 1;
System.out.println("程序调试演示,留神察看i的值:");
while(i < 5){
System.out.println(i);
i++;
}
调试解决问题
调试练习
编程实现:计算100以内(包含100)的偶数之和
设置断点并调试程序,察看每一次循环中变量值的变动
int i = 1;
int total = 0;
while(i <= 100)
{
if(i%2==0)//阐明是偶数
{
total = total + i;
}
i++;
}
System.out.println(total);
另一个问题(do-while循环)
通过几天的学习,老师给张三一道测试题,
让他先上机编写程序实现,
而后老师查看是否合格。如果不合格,则持续编写。……
特点:先执行,再判断
while循环和do-while循环的区别
- 执行秩序不同
- 初始状况不满足循环条件时
while循环一次都不会执行
do-while循环不论任何状况都至多执行一次
作业
实现整数反转 用户输出任意一个数字比方12345,程序输入54321
要求用循环实现,并练习调试技巧
Scanner scanner = new Scanner(System.in);
System.out.println("请输出一个数");
int num = scanner.nextInt();
//12345模10能到最初一位,输入它,再除以10,1234
//反复上一步
while(num>0)
{
//12345模10能到最初一位,输入它,再除以10,1234
System.out.print(num % 10);
num = num / 10;
}
问题回顾 输入100次“好好学习!”
for循环的语法和执行程序
问题
循环输出某同学高考考试的5门课问题,并计算平均分
剖析
循环次数固定
应用for循环构造的步骤
1、剖析循环条件和循环操作
2、套用for语法写出代码
3、查看循环是否可能退出
循环条件:循环的次数有余5,持续循环
循环操作:录入问题,计算问题之和
public class whileDemo2 {
public static void main(String[] args) {
//循环输出某同学高考考试的5门课问题,并计算平均分
Scanner scanner = new Scanner(System.in);
System.out.println("输出学生姓名");
String name = scanner.next();
int score = 0;
int total = 0;
for(int i = 1; i <= 5; i++)
{
System.out.println("请输出"+i+"问题");
score = scanner.nextInt();
total = total + score;
}
System.out.println(name+"的均匀问题是"+total/5);
}
}
输入如图所示加法表
应用for循环:
1、循环初始化:i = 0;j = 输出值
2、循环条件:i<=输出值
3、循环操作:计算i+j
4、循环变量的扭转:i++,j–
public class whileDemo2 {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.println("请输出一个值");
int num = scanner.nextInt();//6
int j = num;
for(int i = 0; i <= num; i++)
{
System.out.println(i+"+"+j+"="+num);
j--;
}
}
}
练习
求1~100之间不能被3整除的数之和
提醒:
1、循环条件:i<100
2、循环操作:if (i % 3 != 0) {
sum = sum + i;
}
计算100以内的奇数之和
设置断点调试程序,追踪3个表达式的执行程序及循环变量的变动
回顾break语句
break:扭转程序控制流
用于do-while、while、for中时,可跳出循环而执行循环前面的语句
练习
循环录入某学生5门课的问题并计算平均分,如果某分数录入为负,进行录入并提醒录入谬误
剖析
循环录入问题,判断录入正确性:录入谬误,应用break语句立即跳出循环;否则,累加求和
public class whileDemo2 {
public static void main(String[] args) {
//循环输出某同学高考考试的5门课问题,并计算平均分
Scanner scanner = new Scanner(System.in);
System.out.println("输出学生姓名");
String name = scanner.next();
int score = 0;
int total = 0;
boolean error = false;//假如用户录入没谬误
for(int i = 1; i <= 5; i++)
{
System.out.println("请输出"+i+"问题");
score = scanner.nextInt();
if(score<0 || score>100)
{
error = true;//用户录入有误
break;
}
total = total + score;
}
if(error == false)
{
System.out.println(name+"的均匀问题是"+total/5);
}
else
{
System.out.println("录入有误");
}
}
}
1~10之间的整数相加,失去累加值大于20的以后数
提醒
1、应用循环进行累加,从1到10
2、判断累加值是否大于20
3、如果大于20,则跳出循环,并打印以后值
int total = 0;
int i = 1;
for(i=1; i <=10; i++)
{
total = total + i;
if(total > 20)
{
break;
}
}
System.out.println(i);
continue语句
continue 作用:跳过循环体中残余的语句而执行下一次循环
循环录入Java课的学生问题,统计分数大于等于80分的学生比例
1、通过循环,取得分数大于等于80分的学生人数num
2、判断:如果问题<80,不执行num++,间接进入下一次循环
- break语句终止某个循环,程序跳转到循环块外的下一条语句
- continue跳出本次循环,进入下一次循环
public static void main(String[] args) {
// 循环录入Java课的学生问题,
// 统计分数大于等于80分的学生比例
//5次问题里,大于等于80分的次数
int count = 0;
Scanner scanner = new Scanner(System.in);
System.out.println("请输出班级总人数");
int personCount = scanner.nextInt();
for(int i = 1; i <= personCount; i++)
{
System.out.println("请输出第" + i + "次问题");
//保留本次问题
int score = scanner.nextInt();
//如果问题小于80的话,跳出本次循环
//即不累加次数
if(score < 80)
{
continue;
}
count++;//累加问题大于等于80的次数
}
System.out.println("80分以上学生人数为" + count);
// double rate = (double) count/personCount;
}
}
求1~10之间的所有偶数和
提醒
1、应用循环进行累加,循环的范畴是从1至10
2 、判断以后数是否为偶数
3 、如果为奇数跳过,执行下一个循环,如果为偶数,进行累加
发表回复