第六章

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(学生姓名+"的平均分是:"+平均分);
}
}

Java 第六章的更多相关文章

  1. “全栈2019”Java第六章:注释

    难度 初级 学习时间 10分钟 适合人群 零基础 开发语言 Java 开发环境 JDK v11 IntelliJ IDEA v2018.3 文章原文链接 "全栈2019"Java第 ...

  2. [Effective Java]第六章 枚举和注解

    声明:原创作品,转载时请注明文章来自SAP师太技术博客( 博/客/园www.cnblogs.com):www.cnblogs.com/jiangzhengjun,并以超链接形式标明文章原始出处,否则将 ...

  3. java第六章异常

    异常: 程序运行一旦出现异常程序就会立刻结束不在向下运行 处理异常:在程序执行代码时,万一发生了异常,程序会按照处理的方法对一场进行处理办法,程序将继续执行 try-catch-finally-thr ...

  4. 疯狂JAVA——第六章 面向对象(下)

    6.1包装类 java为了照顾程序员的传统习惯,所以提供了八种基本数据类型.但也带来不方便,例如所有引用类型都继承自Object类,都可当做Object类型变量使用.但基本数据类型的变量就不可以.如果 ...

  5. Java 第六章 循环结构2

    循环结构 2 会使用 for 循环结构 会在程序中使用 break 和 continue for 比 while 更简洁 什么是 for 循环 ... 语法: for 循环的语法和执行顺序 备注:2条 ...

  6. java 第六章 面向对象基础

    1.面向对象编程思想 面向过程编程 传统的C语言属于面向过程编程.面向过程解决问题的思路:通常是分析出解决问题所需要的步骤,然后用方法把这些步骤一步一步实现,最后一个一个依次调用方法来解决. 面向过程 ...

  7. Java语言程序设计(基础篇) 第六章 方法

    第六章 方法 6.2 定义方法 1.方法的定义由方法名称.参数.返回值类型以及方法体组成. 2.定义在方法头中的变量称为形式参数(formal parameter)或者简称为形参(parameter) ...

  8. Java基础知识二次学习--第六章 常用类

    第六章 常用类   时间:2017年4月26日16:14:49~2017年4月26日16:56:02 章节:06章_01节~06章_06节 视频长度:20:57+1:15+8:44+1:26+11:2 ...

  9. 《深入理解java虚拟机》第六章 类文件结构

    第六章 类文件结构   6.2 无关性的基石 各种不同平台的虚拟机与所有的平台都统一使用的程序存储格式--字节码(ByteCode)是构成平台无关性的基石.java虚拟机不和包括java在内的任何语言 ...

随机推荐

  1. BZOJ 2178: 圆的面积并 [辛普森积分 区间并]

    2178: 圆的面积并 Time Limit: 20 Sec  Memory Limit: 259 MBSubmit: 1740  Solved: 450[Submit][Status][Discus ...

  2. jira + confluence 安装和破解

    Window环境: 环境准备 安装JAVA1.8以上版本 安装SQL SERVER 或 MySQL: jira安装和破解 下载安装包 https://downloads.atlassian.com/s ...

  3. gradle一个已删除的项目找不到

    排查了已有模块未果,到.idea目录中找到了gradle.xml文件,发现其中externalProjectPath指向的正是报错的那个已删除项目,改之,刷gradle,解决.

  4. .vue文件在webstorm中es6语法报错解决方法

    1 语法支持es6设置 Preferences > Languages & Frameworks > JavaScript 把 Javascript Language versio ...

  5. [Python Study Notes] Python的安装

    Windows: 1.下载安装包: 转到Python官网https://www.python.org/downloads/  ,下载最新版本的Python. 2.安装 安装到自定义的安装路径下. 3. ...

  6. Delphi 添加外部Form单元的方法!

    我用到的环境是 RAD Studio 10.2.2 有时候,需要把某个Form单元  添加到其他的工程!  此时,如果直接添加或者拖拉 .pas单元到目标工程,是无法把.pas包含的Form添加进去的 ...

  7. web项目中js加载慢问题解决思路

    最近使用Echarts地图(版本为echarts2,echarts3目前无法下载地图版). 问题描述:之前使用require形式加载,地图首次加载显示要6-7秒,难以接受. js配置代码如下: < ...

  8. windows 下 Symfony的下载与安装

    初始化项目 本篇教程我尽量按照Windows/*nix都可以运行的方式来讲解. 得益于Symfony installer,我们目前可以很方便的初始化一个Symfony2项目.不过首先,你得有一个Sym ...

  9. struts2标签库----数据标签详解

    上篇文章我们介绍struts2标签库中的控制标签的基本使用和部分原理,本篇文章接着了解下标签库中有关数据标签的使用和原理.主要涉及以下数据标签: action标签:用于在视图页面跳转到一个Action ...

  10. C语言老司机学Python (四)

    字符串格式化: 可以使用类似c语言中sprintf函数的方法进行格式化,但是函数名称是print() 如:print('常量 PI 的值近似为:%5.3f.'  %  var_PI) 注意var_PI ...