黑马程序员——java基础——选择、循环

-----------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时, 结束循环。

  举个例子,就拿简单的九九乘法表来说:

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循环语句来编写代码。

时间: 2024-08-25 23:21:55

黑马程序员——java基础——选择、循环的相关文章

黑马程序员--java基础学习笔记5

黑马程序员--java基础学习笔记6 一.笔记内容概述: 数组-第二种定义格式.数组-常见操作-遍历-最值-选择排序-冒泡排序-排序位置置换代码提取.数组-排序的性能问题.数组-常见功能-查找-折半查找.进制转换-查表法-整合. 二.常用内容介绍: 1.数组初始化的三种方式: int[] arr = new int[3]; int[] arr = new int[]{1,2,3}; int[] arr = {1,2,3}; 2.查表法: 如果数据中出现了对应关系,而且对应关系的一方是有序的数字编

黑马程序员——Java基础---集合框架工具类

黑马程序员——Java基础<a href="http://www.itheima.com" target="blank">Java培训.Android培训.iOS培训..Net培训</a>.期待与您交流! ------ 一.概述 Java为操作Set.List和Map提供了一系列工具类,主要有Collections和Arrays.这两个工具类的特点:类中的方法都是静态的,不需要创建对象,直接使用类名调用即可.Collections:是集合对象

黑马程序员——Java基础---io(上)

黑马程序员——Java基础---io(上) ------<a href="http://www.itheima.com" target="blank">Java培训.Android培训.iOS培训..Net培训</a>.期待与您交流! ------ 一.概述 Java I/O系统负责处理程序的输入和输出,I/O类库位于java.io包中,它对各种常见的输入流和输出流进行了抽象.如果数据流中最小的数据单元是字节,那么称这种流为字节流:如果数据流

黑马程序员——Java基础知识之多线程协同

多线程协同 线程间的通讯:对资源的操作动作不同,比如说两个卡车一个拉煤一个装煤,但是他们共享了一个资源. 怎么样把这个资源拿出来?怎样把车装满?这个资源当然是一个类,他里面的组成元素就是对象!!现在我们就要有操作对象的思想了,用对象把这车装满,现在一车装一个对象. 等待唤醒机制: 用的不是sleep是wait.flag标记,这是两人沟通的方式.其实每个标记就要做一次等待或者notify,判断wait,改值notify.线程池.notify唤醒里面的线程,按顺序唤醒.wait和notify必须用在

黑马程序员——Java基础---IO(下)

黑马程序员——Java基础---IO(下) ------<a href="http://www.itheima.com" target="blank">Java培训.Android培训.iOS培训..Net培训</a>.期待与您交流! ------ 一.概述 Java除了基本的字节流.字符流之外,还提供了File类.properties类.打印流.序列流等和输入输出相关的类,它们能够帮助我们更好的处理信息.下面将对它们进行简单的介绍. 一.正

黑马程序员——java基础——多线程

 黑马程序员--java基础--多线程 ------Java培训.Android培训.iOS培训..Net培训.期待与您交流! ------- 进程:是一个正在执行中的程序.每一个进程执行都有一个执行顺序.该顺序是一个执行路径,或者叫一个控制单元. 线程:就是进程中的一个独立的控制单元.线程在控制着进程的执行.一个进程中至少有一个线程. 一个进程至少有一个线程在运行,当一个进程中出现多个线程时,就称这个应用程序是多线程应用程序,每个线程在栈区中都有自己的执行空间,自己的方法区.自己的变量.

黑马程序员——java基础---IO(input output)流字符流

黑马程序员——java基础---IO(input output)流字符流 ------Java培训.Android培训.iOS培训..Net培训.期待与您交流! ------- io(input output)流特点: 1,io流用来处理数据之间的传输 2,java对数据的操作是通过流的方式: 3,java用于操作流的对象都在io包中: 4,流按操作数据分为两种:字节流和字符流: 5,流按流向分为:输入流和输出流. 注意:流只能操作数据,而不能操作文件. 3.IO流的常用基类: 1)字节流的抽象

黑马程序员——java基础——反射

 黑马程序员--java基础--反射 ------Java培训.Android培训.iOS培训..Net培训.期待与您交流! ------- 反射 其实就是动态加载一个指定的类,并获取该类中的所有的内容.而且将字节码文件封装成对象,并将字节码文件中的内容都封装成对象,这样便于操作这些成员. 反射就是把Java类中的各种成分映射成相应的java类. 简单说:反射技术可以对一个类进行解剖. 反射的基石-->Class类 1.java中的类是用来描述一类事物的共性,该类事物有什么属性,没有什么属性

黑马程序员——java基础——内部类

 黑马程序员--java基础--内部类 ------Java培训.Android培训.iOS培训..Net培训.期待与您交流! ------- 内部类 如果A类需要直接访问B类中的成员,而B类又需要建立A类的对象.这时,为了方便设计和访问,直接将A类定义在B类中.就可以了.A类就称为内部类.内部类可以直接访问外部类中的成员.而外部类想要访问内部类,必须要建立内部类的对象. 内部类的访问规则 1,内部类可以直接访问外部类中的成员,包括私有. 之所以可以直接访问外部类中的成员,是因为内部类中持有