*学习的最大理由是想摆脱平庸,早一天就多一份人生的精彩;迟一天就多一天平庸的困扰。
条件语句
与C语言及其他语言相同,Java语言的复合语句是以整个块区为单位的语句,所以又称块语句。复合语句由开括号“{”开始,闭括号“}”结束。
在前面的学习中已经接触到了这种复合语句,例如,在定义一个类或方法时,类体就是以“{ }”作为开始与结束的标记,方法体同样也是以“{ }”作为标记。复合语句中的每个语句都是从上到下被执行。复合语句以整个块为单位,可以用在任何一个单独语句可以用到的地方,并且在复合语句中还可以嵌套复合语句。
在使用复合语句时要注意,复合语句为局部变量创建了一个作用域,该作用域为程序的一部分,在该作用域中某个变量被创建并能够被使用。如果在某个变量的作用域外使用该变量,则会发生错误,例如,在本实例中,如果在复合语句外使用变量y、z、b将会出现错误,而变量x可在整个方法体中使用。
if条件语句是一个重要的编程语句,用于告诉程序在某个条件成立的情况下执行某段语句,而在另一种情况下执行另外的语句。
使用if条件语句,可选择是否要执行紧跟在条件之后的那个语句。关键字if之后是作为条件的“布尔表达式”,如果该表达式返回的结果为true,则执行其后的语句;若为false,则不执行if条件之后的语句。if条件语句可分为简单的if条件语句、if…else语句和if…else if多分支语句。
使用条件语句判断两个变量的大小来决定输出结果
public class Getif { // 创建类 public static void main(String args[]) { // 主方法 int x = 45; // 声明int型变量x,并赋给初值 int y = 12; // 声明int型变量y,并赋给初值 if (x > y) { // 判断x是否大于y System.out.println("变量x大于变量y"); // 如果条件成立,输出的信息 } if (x < y) { // 判断x是否小于y System.out.println("变量x小于变量y"); // 如果条件成立,输出的信息 } } }
if…else语句是条件语句中最常用的一种形式,它会针对某种条件有选择地作出处理。通常表现为“如果满足某种条件,就进行某种处理,否则就进行另一种处理”。if后面()内的表达式的值必须是boolean型的。如果表达式的值为true,则执行紧跟if语句的复合语句;如果表达式的值为false,则执行else后面的复合语句。
创建类Getifelse,在主方法中定义变量,并通过使用if…else语句判断变量的值来决定输出结果。
public class Getifelse { public static void main(String args[]) { // 主方法 int math = 95; // 声明int型局部变量,并赋给初值95 int english = 56; // 声明int型局部变量,并赋给初值56 if (math > 60) { // 使用if语句判断math是否大于60 System.out.println("数学及格了"); // 条件成立时输出信息 } else { System.out.println("数学没有及格"); // 条件不成立输出的信息 } if (english > 60) { // 判断英语成绩是否大于60 System.out.println("英语及格了"); // 条件成立输出的信息 } else { System.out.println("英语没有及格"); // 条件不成立输出的信息 } } }
switch多分支语句
在编程中一个常见的问题就是检测一个变量是否符合某个条件,如果不符合,再用另一个值来检测,依此类推。当然,这种问题使用if条件语句也可以完成。
switch语句中表达式的值必须是整型、字符型或字符串类型,常量值1~n必须也是整型、字符型或字符串类型。switch语句首先计算表达式的值,如果表达式的值和某个case后面的变量值相同,则执行该case语句后的若干个语句直到遇到break语句为止。此时如果该case语句中没有break语句,将继续执行后面case中的若干个语句,直到遇到break语句为止。若没有一个常量的值与表达式的值相同,则执行default后面的语句。default语句为可选的,如果它不存在,且switch语句中表达式的值不与任何case的常量值相同,switch则不做任何处理。
栗子:
public class GetSwitch { // 创建类 public static void main(String args[]) { // 主方法 int week = 2; // 定义int型变量week switch (week) { // 指定switch语句的表达式为变量week case 1: // 定义case语句中的常量为1 System.out.println("Monday"); // 输出信息 break; case 2: // 定义case语句中的常量为2 System.out.println("Tuesday"); break; case 3: // 定义case语句中的常量为3 System.out.println("Wednesday"); break; default: // default语句 System.out.println("Sorry,I don't Know"); } } }
循环语句
循环语句就是在满足一定条件的情况下反复执行某一个操作。在Java中提供了3种常用的循环语句,分别是while循环语句、do…while循环语句和for循环语句。过while循环将整数1~10相加,并将结果输出。栗子:
public class GetSum { // 创建类 public static void main(String args[]) { // 主方法 int x = 1; // 定义int型变量x,并赋给初值 int sum = 0; // 定义变量用于保存相加后的结果 while (x <= 10) { sum = sum + x; // while循环语句当变量满足条件表达式时执行循环体语句 x++; } System.out.println("sum = " + sum); // 将变量sum输出 } }
do…while循环语句与while循环语句类似,它们之间的区别是while语句为先判断条件是否成立再执行循环体,而do…while循环语句则先执行一次循环后,再判断条件是否成立。也就是说do…while循环语句中“{}”中的程序段至少要被执行一次。do…while语句与while语句的一个明显区别是,do…while语句在结尾处多了一个分号(;)。根据do…while循环语句的语法特点总结出的do…while循环语句的执行过程。栗子:
public class Cycle { public static void main(String args[]) { int a = 100; // 声明int型变量a并赋初值100 while (a == 60) // 指定进入循环体条件 { System.out.println("ok1"); // while语句循环体 a--; } int b = 100; // 声明int型变量b并赋初值100 do { System.out.println("ok2"); // do…while语句循环体 b--; } while (b == 60); // 指定循环结束条件 } }
foreach语句是for语句的特殊简化版本,不能完全取代for语句,但任何foreach语句都可以改写为for语句版本。foreach并不是一个关键字,习惯上将这种特殊的for语句格式称为foreach语句。foreach语句在遍历数组等方面为程序员提供了很大的方便。
用foreach语句遍历该数组
public class Repetition { // 创建类Repetition public static void main(String args[]) { // 主方法 int arr[] = { 7, 10, 1 }; // 声明一维数组 System.out.println("一维数组中的元素分别为:"); // 输出信息 for (int x : arr) { //foreach语句,int x引用的变量,arr指定要循环遍历的数组,最后将x输出 System.out.println(x); } } }