黑马程序员——java基础——选择、循环
2015-11-04 13:10
483 查看
-----------android培训、java培训、java学习型技术博客、期待与您交流!------------
今天回顾了一下JAVA学习中的选择语句,循环语句,和数组,在JAVA中的选择语句和C语言中差不多有if、switch
一个if语句由一个后跟到一到多个语句的布尔表达式组成。顺序结构的程序语句只能被执行一次。如果您想要同样的操作执行多次,,就需要使用循环结构。
Java中有三种主要的循环结构:
while循环
do…while循环
for循环
for循环的用法
先来说说哦For循环吧,for循环是开界的。它的一般形式为: for(<初始化>; <条件表达式>; <增量>) 语句; 初始化总是一个赋值语句, 它用来给循环控制变量赋初值; 条件表达式是一个关系表达式, 它决定什么时候退出循环; 增量定义循环控制变量每循环一次后 按什么方式变化。这三个部分之间用";"分开。 例如: for(i=1; i<=10; i++) 语句; 上例中先给 " i " 赋初值1, 判断 " i " 是否小于等于10, 若是则执行语句, 之后值增 加1。再重新判断, 直到条件为假, 即i>10时, 结束循环。
举个例子,就拿简单的九九乘法表来说:
J2SE 1.5提供了另一种形式的for循环。借助这种形式的for循环,可以用更简单地方式来遍历数组和Collection等类型的对象。本文介绍使用这种循环的具体方式,说明如何自行定义能被这样遍历的类,并解释和这一机制的一些常见问题。
在Java程序中,要“逐一处理”――或者说,“遍历”――某一个数组或Collection中的元素的时候,一般会使用一个for循环来实现(当然,用其它种类的循环也不是不可以,只是不知道是因为for这个词的长度比较短,还是因为for这个词的含义和这种操作比较配,在这种时候for循环比其它循环常用得多)。
1:遍历数组的传统方式
2:遍历Collection对象的传统方式
而在Java语言的最新版本――J2SE 1.5中,引入了另一种形式的for循环。借助这种形式的for循环,现在可以用一种更简单地方式来进行遍历的工作。
不严格的说,Java的第二种for循环基本是这样的格式:
for (循环变量类型 循环变量名称 : 要被遍历的对象) 循环体
借助这种语法,遍历一个数组的操作就可以采取这样的写法:
3:遍历数组的简单方式
4:遍历数组的简单方式的等价代码
只要布尔表达式为true,循环体会一直执行下去。
以上实例编译运行结果如下:
对于while语句而言,如果不满足条件,则不能进入循环。但有时候我们需要即使不满足条件,也至少执行一次。
do…while循环和while循环相似,不同的是,do…while循环至少会执行一次。
示例:计算1+2+3+4......+100的结果。
输出结果:
注意:其实在实际程序开发中,不经常使用 do/while 循环语句。因为这种语句是先执行循环体再检测条件,所以会有一些危险数据不经检测,就会被执行。建议使用 while 语句或者 for循环语句来编写代码。
今天回顾了一下JAVA学习中的选择语句,循环语句,和数组,在JAVA中的选择语句和C语言中差不多有if、switch
一个if语句由一个后跟到一到多个语句的布尔表达式组成。顺序结构的程序语句只能被执行一次。如果您想要同样的操作执行多次,,就需要使用循环结构。
Java中有三种主要的循环结构:
while循环
do…while循环
for循环
for循环的用法
先来说说哦For循环吧,for循环是开界的。它的一般形式为: for(<初始化>; <条件表达式>; <增量>) 语句; 初始化总是一个赋值语句, 它用来给循环控制变量赋初值; 条件表达式是一个关系表达式, 它决定什么时候退出循环; 增量定义循环控制变量每循环一次后 按什么方式变化。这三个部分之间用";"分开。 例如: for(i=1; i<=10; i++) 语句; 上例中先给 " i " 赋初值1, 判断 " i " 是否小于等于10, 若是则执行语句, 之后值增 加1。再重新判断, 直到条件为假, 即i>10时, 结束循环。
举个例子,就拿简单的九九乘法表来说:
public class s99{ public static void main(String[] args){ //循环的行数 for (int i=1;i<=9;i++) { //控制列 for (int j=1;j<=i;j++){ //算法 System.out.print(i+"*"+j+"="+(i*j)+"\t"); } System.out.print("\n"); } } }
选这个的主要目的在于,使大家了解双重for循环的作用。其中第一个for主要是控制行,而第二个for主要是控制列。然后就是一种算法,算法在编程中起到了决定性的作用,好的算法与次的算法严重影响程序的执行效率与后期的维护,大家以后在学习中一定要去多学学人家写的好程序。 for循环适合循环次数固定的情况。对于循环次数不固定的,比如数组的循环和集合的遍历,可以用foreach循环。foreach循环不需要知道循环的次数。 下面我们来实现计算学生成绩的for循环代码: 假定给出一个学生的5门功课的成绩,要求输出平均值
1 package com.student.exam; 2 /** 3 * 使用for 循环 4 * 输入学生的5们功课,查询该学生的总成绩和平均分数 5 */ 6 import java.util.Scanner; 7 8 public class AverageScores { 9 public static void main(String[] args) { 10 int score; //声明一个变量,取名为score,用来接收学生的成绩值 11 int sum= 0; //声明一个变量,取名sum,用来存储学生的成绩和 12 double avg =0.0; //声明一个double类型的变量,用来接收计算出来的学生的平均分 13 Scanner sc = new Scanner(System.in); //获取键盘输入 14 System.out.println("请输入学生的姓名:"); 15 String name = sc.next(); //将获取的输入赋值给一个String类型的name变量 16 int i= 0; //声明一个int类型的变量,赋初始值为0 17 for(;i<5;i++){ //循环5次录入成绩 18 System.out.println("请输入5门功课的第"+(i+1)+"门的成绩:"); 19 score = sc.nextInt(); //录入成绩 20 sum += score; //等价于语句 sum=sum+score; 21 System.out.println(name+"的前"+(i+1)+"门功课的成绩和是:"+sum); 22 } 23 System.out.println(name+"的总成绩是:"+sum); 24 avg = sum/5; //计算平均成绩 25 System.out.println(name+"的平均分是:"+avg); 26 27 } 28 29 }
因为这是Java的基础部分,属于初始java,所以每行代码都给出了注释,为了初学者更能直观的感受,我把其中的英文标识符换做汉字代替。 注意:使用中文尽管在Eclipse中能够正常运行,但在实际开发中,还是推荐使用全英文的命名方式。 我们来使用java中的for循环输出点阵的图形
1 package com.student.exam; 2 3 public class PrintTX { 4 public static void main(String[] args) { 5 printJX(); 6 printPXSBX(); 7 printSJX(); 8 9 } 10 //打印矩形 11 private static void printJX(){ 12 for(int i=1;i<=5;i++){ 13 for(int j=1;j<=5;j++){ 14 System.out.print("*"); 15 } 16 System.out.println(); 17 } 18 } 19 //打印平行四边形 20 private static void printPXSBX(){ 21 for(int i=1;i<=5;i++){ 22 for(int k=1;k<=5-i;k++){ 23 System.out.print(" "); 24 } 25 for(int j=1;j<=5;j++){ 26 System.out.print("*"); 27 } 28 System.out.println(); 29 } 30 } 31 //打印三角形 32 private static void printSJX() { 33 for(int i=1;i<=5;i++){ 34 for(int k=1;k<=5-i;k++){ 35 System.out.print(" "); 36 } 37 for(int j=1;j<=2*i-1;j++){ 38 System.out.print("*"); 39 } 40 System.out.println(); 41 } 42 43 } 44 45 }
J2SE 1.5提供了另一种形式的for循环。借助这种形式的for循环,可以用更简单地方式来遍历数组和Collection等类型的对象。本文介绍使用这种循环的具体方式,说明如何自行定义能被这样遍历的类,并解释和这一机制的一些常见问题。
在Java程序中,要“逐一处理”――或者说,“遍历”――某一个数组或Collection中的元素的时候,一般会使用一个for循环来实现(当然,用其它种类的循环也不是不可以,只是不知道是因为for这个词的长度比较短,还是因为for这个词的含义和这种操作比较配,在这种时候for循环比其它循环常用得多)。
1:遍历数组的传统方式
/* 建立一个数组 */ int[] integers = {1, 2, 3, 4}; /* 开始遍历 */ for (int j = 0; j < integers.length; j++) { int i = integers[j]; System.out.println(i); }
2:遍历Collection对象的传统方式
/* 建立一个Collection */ String[] strings = {"A", "B", "C", "D"}; Collection stringList = java.util.Arrays.asList(strings); /* 开始遍历 */ for (Iterator itr = stringList.iterator(); itr.hasNext();) { Object str = itr.next(); System.out.println(str); }
而在Java语言的最新版本――J2SE 1.5中,引入了另一种形式的for循环。借助这种形式的for循环,现在可以用一种更简单地方式来进行遍历的工作。
不严格的说,Java的第二种for循环基本是这样的格式:
for (循环变量类型 循环变量名称 : 要被遍历的对象) 循环体
借助这种语法,遍历一个数组的操作就可以采取这样的写法:
3:遍历数组的简单方式
/* 建立一个数组 */ int[] integers = {1, 2, 3, 4}; /* 开始遍历 */ for (int i : integers) { System.out.println(i); /* 依次输出“1”、“2”、“3”、“4” */ }
4:遍历数组的简单方式的等价代码
/* 建立一个数组 */ int[] integers = {1, 2, 3, 4}; /* 开始遍历 */ for (int 变量名甲 = 0; 变量名甲 < integers.length; 变量名甲++) { System.out.println(integers[变量名甲]); /* 依次输出“1”、“2”、“3”、“4” */ } 5:遍历Collection的简单方式 /* 建立一个Collection */ String[] strings = {"A", "B", "C", "D"}; Collection list = java.util.Arrays.asList(strings); /* 开始遍历 */ for (Object str : list) { System.out.println(str); /* 依次输出“A”、“B”、“C”、“D” */ }
while循环
while是最基本的循环,在英文中“while”这个词的意思是“当”,而在 Java 程序设计中,也可以将其理解为“当”,它的结构为:while( 布尔表达式 ) { //循环内容 }
只要布尔表达式为true,循环体会一直执行下去。
实例
public class Test { public static void main(String args[]) { int x = 10; while( x < 20 ) { System.out.print("value of x : " + x ); x++; System.out.print("\n"); } } }
以上实例编译运行结果如下:
value of x : 10 value of x : 11 value of x : 12 value of x : 13 value of x : 14 value of x : 15 value of x : 16 value of x : 17 value of x : 18 value of x : 19
do/while 语句
在学习 do/while 语句之前,先清楚 while 语句是如何工作的。while 语句是先进行条件判断,再执行大括号内的循环体。对于while语句而言,如果不满足条件,则不能进入循环。但有时候我们需要即使不满足条件,也至少执行一次。
do…while循环和while循环相似,不同的是,do…while循环至少会执行一次。
do { //代码语句 }while(布尔表达式);
示例:计算1+2+3+4......+100的结果。
public class control5{ public static void main(String[] args){ int a=1,result=0; do{ result+=a++; }while(a<=100); System.out.println(result); } }
输出结果:
5050
注意:其实在实际程序开发中,不经常使用 do/while 循环语句。因为这种语句是先执行循环体再检测条件,所以会有一些危险数据不经检测,就会被执行。建议使用 while 语句或者 for循环语句来编写代码。
相关文章推荐
- ——黑马程序员——OC中NSString类基本用法和类方法的调用
- 黑马程序员--异常和包
- 每天被面试虐一点点(五)
- [.Net码农]FastReport.NET WebReport标签使用教程
- 面试准备
- php开发提升,保持一个程序员本色
- 程序员面试 刷题推荐
- 黑马程序员——java基础语法(一)---关键字、标识符、注释、常量、变量、运算符
- P127、面试题20:顺时针打印矩阵
- P125、面试题19:二叉树的镜像
- 你的程序员是一种什么样的怪物?
- IBM 对架构师的职业素质的定义
- IBM 对架构师的职业素质的定义
- 【黑马程序员】多态、抽象类、接口——Java复习笔记
- java架构师之路:JAVA程序员必看的15本书的电子版下载地址
- [非凡程序员]单例模式
- java架构师之路:JAVA程序员必看的15本书的电子版下载地址
- 黑马程序员_简易版IE浏览器 1.0
- java面试--String详解
- 软件测试职业发展规划图