第六章

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. SAS SATA SSD基本介绍

    SATA硬盘采用新的设计结构,数据传输快,节省空间,相对于IDE硬盘具有很多优势: 1 .SATA硬盘比IDE硬盘传输速度高.目前SATA可以提供150MB/s的高峰传输速率.今后将达到300 MB/ ...

  2. setinIerval和setTimeout的区别?

    setTimeout和setInterval的使用 这两个方法都可以用来实现在一个固定时间段之后去执行JavaScript.不过两者各有各的应用场景. 方 法 实际上,setTimeout和setIn ...

  3. AGC017 F - Zigzag

    传送门 Time limit : 4sec / Memory limit : 256MB Score : 1600 points Problem Statement There are N(N+1)⁄ ...

  4. VS2012如何调试JS

    下面的操作步骤描述了怎样利用vs.net中的调试器来调试javascript: 1,首先,要让你的ie允许调试脚本,具体步骤如下:    打开ie->工具菜单->inter选项->高 ...

  5. Leetcode刷题C#版之 Median of Two Sorted Arrays

    题目: There are two sorted arrays nums1 and nums2 of size m and n respectively. Find the median of the ...

  6. CentOS安装EPEL Remi

    EPEL,Remi 因为Centos官方源很多软件都没有,编译安装又比较麻烦,可以安装EPEL源Remi源解决此问题. CentOS 5.x : wget http://dl.fedoraprojec ...

  7. mac下更新自带的PHP版本到5.6

    OS X 10.11自带的PHP版本是PHP 5.5.x,如果我们想更新PHP的版本到5.6或者是7.0该怎么办呢? 下载和安装PHP 5.6 打开终端并且运行如下命令: curl -s http:/ ...

  8. esxi 改变虚拟机磁盘格式为精简存储

    最近在部署虚拟机,导入几个之前保存的ovf模板,发现存储已经被耗费的差不多了.检查了下磁盘存储格式 存储类型是 后置备延迟置零 占用空间 简单了解下 三种存储类型 1.厚置备延迟置零: 默认的创建格式 ...

  9. linux、windows系统间传输文件

    日常工作中经常涉及到系统间的文件传输,下面就简单说一下常用的方法   linux--windows      工具:winscp.SecureCRT.Zmodem(sz, rz)   linux--l ...

  10. 正本清源区块链——Caoz

    正本清源区块链 说明:以下内容整理自Caoz的<正本清源区块链>,如有不妥,请联系我修改或删除. 简介 不讨论炒币!不讨论炒币!不讨论炒币! 本课程内容分为两部分: 第一部分,烧脑篇,介绍 ...