- 浏览: 89084 次
- 性别:
- 来自: 武汉
最新评论
-
性感joanna:
你好,请问博主这个下载链接是不是只有115的vip会员才可以下 ...
耶鲁大学开放课程:《聆听音乐》6CD下载地址 -
whu2007xqc:
正在看聆听音乐的公开课,没想到在这儿遇到了6CD的下载,万分感 ...
耶鲁大学开放课程:《聆听音乐》6CD下载地址
第七课:循环与“一半”问题
For循环与While循环的对比,例程序CheckerBoad,在Java中创建函数,创建函数举例,FactorialExample程序,用函数返回对象
当不知道具体的循环次数时,可以使用while循环。这就是我们所说的模糊循环,不是无限循环。
哨兵值,我们将会用一个常量去判断用户什么时候想输入数据,什么时候停止输入数据,所以在编程中这个值常被称之为哨兵。
例:从用户那读入一连串数字,直到用户输入0才停止读入,然后计算这些数字的和。
public class Add extends ConsoleProgram { private static final int SENTINEL = 0;//哨兵 public void run(){ int total = 0;//输入值总和 int val = readInt("Enter val:");//输入值 while(val != SENTINEL){ total += val; val = readInt("Enter val:"); } println("Total = " + total); } }
循环会判断如果你给的值不是哨兵值,就不会停止。
在计算机科学或者计算机编程中,我们很讨厌重复的代码。如果能够避免重复代码,即使只有一行我们都会尽力去消除,你能在上面看到重复的代码,对吧。向用户询问数值的这个操作至少要执行一次,但是在第一场执行后,我们需要在循环里面重复这个操作,所以我们遇到了难题,如何避免重复的代码呢?
public class Add extends ConsoleProgram { private static final int SENTINEL = 0;//哨兵 public void run(){ int total = 0;//输入值总和 while(true){ int val = readInt("Enter val:");//输入值 if(val == SENTINEL) break;//如果输入值等于哨兵就跳出循环 total += val; } println("Total = " + total); } }
循环会判断循环条件永远为真,看起来很奇怪。你会担心它不是一个无限循环吗?只有一种情况会被终止,我们会向用户询问数值,判断这个值是否为哨兵值。如果是,跳出循环。
break语句的作用就是它会跳出围绕代码最里面的那层循环。实际上它的用途是在循环内部检查跳出循环的条件,而不是在开头或每次进入循环的时候检查。
从编程风格来说,一个循环体内有多重终止条件是非常糟糕的。因为这会让程序员很难识别哪个条件为真,才能跳出循环。
你会去计算某些事物的执行次数(for循环),或者会在条件为真时才做某事(while),这就是两种循环的区别。
发表评论
-
MTI 算法导论
2011-07-19 12:13 996知识储备 计算机程序结构与解释 离散数学 概率论 ... -
[微积分重点][MIT]
2011-07-10 15:41 11761.微积分总览 微积分不过是关于两个函数之间关系的学科。例如 ... -
耶鲁大学开放课程:《聆听音乐》第11课
2011-05-03 16:28 798第11课 Form: Rondo, Sonata-A ... -
耶鲁大学开放课程:《金融市场》课程介绍
2011-05-02 20:13 720耶鲁大学开放课程:《金融市场》 课程类型:金融 课程简介: ... -
耶鲁大学开放课程:《聆听音乐》第10课
2011-05-02 16:15 685第10课 Sonata-Allegro and Them ... -
斯坦福大学开放课程: 《编程方法》第8课
2011-04-29 21:37 720第八课:信息隐藏 Void函数类型,在函数间传递参数,函数的 ... -
斯坦福大学开放课程: 《编程方法》第6课
2011-04-22 02:56 679第六课:操作符 readInt() 和 readDouble ... -
斯坦福大学开放课程: 《编程方法》第5课
2011-02-13 17:41 669第五课:变量 变量的数据类型,调用变量相关语法,类的类型,对 ... -
斯坦福大学开放课程: 《编程方法》第4课
2011-01-20 07:30 820第四课:计算科学发展史 计 算机科学与程序设计的千丝万缕, ... -
MIT麻省理工大学开放课程:《线性代数》第2课
2010-12-21 21:59 735Lecture 02: Elimination with Ma ... -
耶鲁大学开放课程:《金融市场》第13课
2010-12-19 19:38 766第13课 Banking: Successes ... -
耶鲁大学开放课程:《聆听音乐》第9课
2010-12-16 21:52 835第9课 Sonata-Allegro Form: M ... -
哈佛大学开放课程:《公正:该如何做是好?》第6课
2010-12-12 23:35 730第6课 考虑你的动机 ... -
斯坦福大学开放课程: 《编程方法》第3课
2010-12-11 21:25 776第三课:Karel与Java Karel 与Java,常见的 ... -
MIT麻省理工大学开放课程:《线性代数》第1课
2010-12-10 01:26 824Lecture 01: The Geometry of Lin ... -
MIT麻省理工大学开放课程:《线性代数》介绍
2010-12-10 01:10 1138MIT麻省理工大学开放课程:《线性代数》 课程介绍: ... -
耶鲁大学开放课程:《金融市场》第12课
2010-12-09 18:15 771第12课 Real Estate Finan ... -
耶鲁大学开放课程:《聆听音乐》第8课
2010-12-07 17:29 810第8课 Bass Patterns: Blues ... -
哈佛大学开放课程:《公正:该如何做是好?》第5课
2010-12-03 20:55 720第5课 雇枪?/ 出售 ... -
耶鲁大学开放课程:《金融市场》第11课
2010-11-29 19:10 720第11课 Stocks 股票 非盈利组织的 ...
相关推荐
《斯坦福大学开放课程:编程方法》是一门深入浅出的计算机科学入门课程,旨在教授学生基础的编程技能和概念。这门课程的讲义涵盖了多个关键知识点,适合初学者和有经验的程序员来巩固基础。 首先,"编程方法"...
资源名称:斯坦福大学公开课:编程方法学(28集)资源目录:【】1.课程简介【】10.私有变量的重要性【】11.Gimage类【】12.枚举【】13.对字符串的处理【】14.内存【】15.指针要点回顾【】16.数组【】17.多维数组【】...
### 斯坦福大学开放课程:编程方法 #### 一、课程概述 ##### 1.1 课程背景与意义 斯坦福大学作为全球顶尖的高等教育机构之一,在计算机科学领域拥有极高的声誉。为了让更多人能够接触到高质量的教育资源,斯坦福...
《斯坦福大学开放课程:编程方法》是一门深入探讨编程技术与算法的精品课程,旨在帮助学生掌握高效、清晰的编程技巧。这门课程的讲义集包含了丰富的教学材料,覆盖了从基础到高级的编程概念,对于学习者来说极具价值...
《斯坦福大学开放课程:编程方法》讲义 #5如何下载Eclipse开发环境,很好的配套讲义.
《斯坦福大学开放课程: 编程方法》是面向初学者的一门经典计算机科学课程,旨在教授编程的基础概念和最佳实践。这门课程涵盖了广泛的知识点,从基本的编程语法到高级的设计原则,帮助学生建立坚实的编程基础。下面将...
在斯坦福大学的开放课程中,"编程方法"可能涵盖了从基本编程语法到高级编程技巧的广泛内容,旨在帮助学生建立坚实的编程基础,并提升他们的逻辑思维和问题解决能力。 【编程】是指用特定的编程语言(如Python、Java...
【YYeTs人人影视】《斯坦福大学开放课程:编程方法》讲义#6-使用Eclipse编写卡雷尔.pdf
资源名称:斯坦福大学公开课:编程范式视频课程(27集含笔记)资源目录:【】斯坦福大学公开课编程范式笔记【】编程范式1【】编程范式10【】编程范式11【】编程范式12【】编程范式13【】编程范式14【】编程范式15...
### 斯坦福大学开放课程:iOS开发教程2010年秋(Lecture 13) #### 一、课程背景与概述 斯坦福大学提供的这门开放课程《iOS开发教程》2010年秋季版第13讲,主要讲解了iOS应用开发中的一个关键概念——**Blocks(代码...
斯坦福大学公开课:抽象编程(2)【】斯坦福大学公开课:抽象编程(3)【】斯坦福大学公开课:抽象编程(4)【】斯坦福大学公开课:抽象编程(5)【】斯坦福大学公开课:抽象编程(6)【】斯坦福大学公开课:抽象编程(7)【】...
《斯坦福大学开放课程:编程方法》是一门深入探讨编程技术与实践的公开课,由知名教育家麦兰·萨哈米教授主讲。这门课程不仅涵盖了基础的编程概念,还包括了编程实践中的一些重要原则和技巧,旨在帮助学生建立起扎实...
标题与描述均提到了“斯坦福大学开放课程:iOS开发教程2010年秋(Lecture 14)”,这表明讲座聚焦于iOS应用开发,尤其是针对iPhone 4、iPod Touch以及iPad设备的开发。课程由斯坦福大学提供,是计算机科学系(CS)的一...
### 斯坦福大学开放课程:iOS开发教程2010年秋(Lecture 1)——深入解析 #### 一、课程概览与结构 **标题与描述:**本课程由斯坦福大学提供,旨在教授iOS应用开发的核心技能,特别针对2010年秋季学期。课程覆盖了从...
《斯坦福大学公开课:机器学习课程》是由著名计算机科学家吴恩达(Andrew Ng)主讲的一门经典课程,深入浅出地介绍了机器学习的基础理论、算法及应用。本课程不仅涵盖了机器学习的基本概念,还涉及到了深度学习的前沿...
### 斯坦福大学开放课程:iOS开发教程2010年秋(Lecture 11) #### 课程概述 斯坦福大学的开放课程《iOS开发教程》2010年秋季版第11讲主要围绕iOS应用开发的核心概念和技术进行深入讲解。本课程通过实际示例介绍了...
### 斯坦福大学开放课程:iOS开发教程2010年秋(Lecture 7) 在本章节中,斯坦福大学的iOS开发课程主要聚焦于iOS应用开发中的几个关键概念和技术点,包括IBOutlet内存管理的微妙之处、初始化代码选项、内存管理技巧、...
### 斯坦福大学开放课程:iOS开发教程2010年秋(Lecture 2-Assignment_1) #### 关键知识点解析 ##### 背景介绍 本篇内容源自斯坦福大学的一门开放课程——iOS应用开发教程。该课程旨在为学生提供iOS应用开发的基础...
### 斯坦福大学开放课程:iOS开发教程2010年秋(Lecture 12) #### 课程概述 在本课程中,我们探讨了如何使用Core Data进行iOS应用程序开发,尤其是在苹果设备如iPhone 4、iPod Touch及iPad上的应用开发。Core Data...