第六章

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. AC 自动机 模板

    简单版 #include <iostream> #include <cstdio> #include <algorithm> #include <cstrin ...

  2. HDU 4333 Revolving Digits

    扩展KMP的应用 我们发现本题的关键在于如何高效的判断两个同构字符串的大小关系,想到如果能够预处理出每一个同构字符串与原字符串的最长公共前缀,那么直接比较它们不一样的部分就好,扩展KMP正好是用来处理 ...

  3. BZOJ 3944: Sum [杜教筛]

    3944: Sum 贴模板 总结见学习笔记(现在还没写23333) #include <iostream> #include <cstdio> #include <cst ...

  4. BZOJ 2388: 旅行规划 [分块 凸包 等差数列]

    传送门 题意: 区间加和询问一段区间内整体前缀和的最大值 刚才还在想做完这道题做一道区间加等差数列结果发现这道就是.... 唯一的不同在于前缀和一段区间加上等差数列后,区间后面也要加上一个常数!!! ...

  5. 基于Citus和ASP.NET Core开发多租户应用

    Citus是基于PsotgreSQL的扩展,用于切分PsotgreSQL的数据,非常简单地实现数据“切片(sharp)”.如果不使用Citus,则需要开发者自己实现分布式数据访问层(DDAL),实现路 ...

  6. 运行自己的 DaemonSet - 每天5分钟玩转 Docker 容器技术(131)

    本节以 Prometheus Node Exporter 为例演示如何运行自己的 DaemonSet. Prometheus 是流行的系统监控方案,Node Exporter 是 Prometheus ...

  7. 关于字符型char变量

    写程序时,意外发现个很不容易察觉问题出在哪的问题的 scanf("%c",&ch); scanf("%c",&c); printf(" ...

  8. .NET Core使用swagger进行API接口文档管理

    一.问题背景 随着技术的发展,现在的开发模式已经更多的转向了前后端分离的模式,在前后端开发的过程中,联系的方式也变成了API接口,但是目前项目中对于API的管理很多时候还是通过手工编写文档,每次的需求 ...

  9. Ubuntu下利用Apache转发模块实现反向代理

    Apache的反向代理主要利用转发模块,proxy和proxy_http 先配置 Apache 支持proxy 和 proxy_http 在Ubuntu系统下,Apache的配置文件在目录/etc/a ...

  10. CENTOS6.6 下mysql MHA架构搭建

    本文来自我的github pages博客http://galengao.github.io/ 即www.gaohuirong.cn 摘要: 本篇是自己搭建的一篇mysql MHA文章 前面的安装步骤基 ...