第六章
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了第六章相关的知识,希望对你有一定的参考价值。
第六章
for语法:
for(表达式①;表达式②;表达式③){
//④循环操作
}
表达式含义:
表达式1:赋值语句, 它用来给循环变量赋初值 例如:int i = 1;
表达式2:循环条件,一个关系表达式, 它决定什么时候退出循环 例如:i < 5;
表达式3:变量迭代 例如: i++ 三个表达式均可省略,但分号不能省!!!!!
执行过程:
1.表达式1
2.判断表达式2,如果为true,执行循环操作,否则退出循环,第三步不执行
3.循环操作执行完毕后,执行表达式3(迭代部分),改变循环变量值
4.依次重复步骤2~3,直到退出循环
表达式2满足条件
if(表达式①;表达式②;④循环操作){
表达式③
}
执行流程:①---->②---->③---->④ --------------------------------------------------------------------------
注意事项:
for(;i<10;i++){
System.out.println("这是 "+i);
}
编译错误:
变量 i 没有初始化
--------------------------------------------------------------------------
for(int i=0;;i++){
System.out.println("这是 "+i);
}
编译正确,但是缺少
循环条件,造成死循环
--------------------------------------------------------------------------
for(int i=0;i<10;){
System.out.println("这是 "+i);
}
i++;
编译通过,但是循环变量的值无变化, 造成死循环
省略表达式3,在循环体内应设法改 变循环变量的值以结束循环
--------------------------------------------------------------------------
for(;;){
System.out.println("这是测试");
}
表达式全省略,无条件判断,循环变量无改变,
应在循环体内设法结束循环;
否则会造成死循环
--------------------------------------------------------------------------
//break是结束整个循环体,continue是结束单次循环
比方说:
while(x++ < 10){
if(x == 3){
break;
}
System.out.println("值:" + x);
}
结果是输出 1 2 就退出了整个while循环
但是如果使用continue
while(x++ < 10){
if(x == 3){
continue;
}
System.out.println("值:"+ x);
}
结果是:1 2 4 5 6 7 8 9 10 可见他仅仅是不输出3,因为他结束了本次循环
当循环执行到break语句时,就退出整个循环,然后执行循环外的语句 改变程序控制流。
当循环语句执行到continue时,当次循环结束,重新开始下一轮循环。如果已经是最后一轮循环了,那么这是的continue就与break效果一样了。
到目前为止所学的循环结构有哪些?
语法区别:
while | do-while | for
while循环: | do{ |
for(初始化;条件;迭代){
while(<条件>){ | //循环体
| //循环体
//循环体 | }while(<条件>); | }
| |
需要多次重复执行一个或多个任务的问题考虑使用循环来解决 无论哪一种循环结构,都有4个必不可少的部分:初始部分、循环条件、循环体、迭代部分
执行顺序:
while 循环:先判断,再执行
do-while循环:先执行,再判断
for循环:先判断,再执行
适用情况: 循环次数确定的情况,通常选用for循环 循环次数不确定的情况,通常选用while或do-while循环
for案例:
/**
*计算1到100的和
*/
public class Summation {
public static void main(String[] args) {
int sum = 0; //声明变量sum存放计算的和,赋初值为0
for(int i=1;i<=100;i++)
sum +=i;//等价于语句sum=sum+score
System.out.println("sum="+sum);
}
}
/**
* 使用for 循环
* 输入学生的5们功课,查询该学生的总成绩和平均分数
*/ import java.util.Scanner;
public class AverageScores {
public static void main(String[] args) {
int score; //声明一个变量,取名为score,用来接收学生的成绩值
int sum= 0; //声明一个变量,取名sum,用来存储学生的成绩和
double avg =0.0; //声明一个double类型的变量,用来接收计算出来的学生的平均分
Scanner sc = new Scanner(System.in); //获取键盘输入
System.out.println("请输入学生的姓名:");
String name = sc.next(); //将获取的输入赋值给一个String类型的name变量
int i= 0; //声明一个int类型的变量,赋初始值为0
for(;i<5;i++){ //循环5次录入成绩
System.out.println("请输入5门功课的第"+(i+1)+"门的成绩:");
score = sc.nextInt(); //录入成绩
sum += score; //等价于语句
sum=sum+score;
System.out.println(name+"的前"+(i+1)+"门功课的成绩和是:"+sum); }
System.out.println(name+"的总成绩是:"+sum);
avg = sum/5; //计算平均成绩
System.out.println(name+"的平均分是:"+avg);
}
变量为汉字
/**
* 使用for 循环
* 输入学生的5们功课,查询该学生的总成绩和平均分数
*/ import java.util.Scanner;
public class 求学生的平均成绩 {
public static void main(String[] args) {
int 单科成绩;
int 总成绩= 0;
double 平均分 =0;
Scanner 键盘输入 = new Scanner(System.in);
System.out.println("请输入学生的姓名:");
String 学生姓名 = 键盘输入.next();
int i= 0;
for(;i<5;i++){
System.out.println("请输入5门功课的第"+(i+1)+"门的成绩:");
单科成绩 = 键盘输入.nextInt();
总成绩 += 单科成绩;
System.out.println(学生姓名+"的前"+(i+1)+"门功课的成绩和是:"+总成绩);
}
System.out.println(学生姓名+"的总成绩是:"+总成绩);
平均分 = 总成绩/5;
System.out.println(学生姓名+"的平均分是:"+平均分);
}
}
以上是关于第六章的主要内容,如果未能解决你的问题,请参考以下文章