这一部分流程控制语句包括:顺序结构、选择结构、循环结构、跳转语句。

Java实例 Part3:流程控制-LMLPHP

具体区别待补充。。。

@


Example01:判断某一年是否为闰年

要求:用户输入年份,并判断输入的年份是否为闰年。

运行结果:

Java实例 Part3:流程控制-LMLPHP

实现代码:

import java.util.Scanner;

public class Example01 {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.println("请输入年份:");
int year = scanner.nextInt();
if (year % 4 == 0 && year % 100 != 0 || year % 400 == 0){
System.out.println(year+"年是闰年!");
}else{
System.out.println(year+"年不是闰年!");
}
}
}

要点: 判断一个年份是否闰年,要满足两个条件:一是能被4整除但不能被100整除,另一个是能被400整除。

year % 4 == 0 && year % 100 != 0 || year % 400 == 0</>


Example02:验证登录信息的合法性

运行结果:

Java实例 Part3:流程控制-LMLPHP

实现代码:

import java.util.Scanner;

public class Example02 {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.println("请输入用户名:");
String username = scanner.nextLine(); System.out.println("请输入密码:");
String password = scanner.nextLine(); if (!username.equals("admin")){
System.out.println("用户名不正确!");
} else if(!password.equals("123")){
System.out.println("密码不正确!");
}else {
System.out.println("恭喜你,登录信息通过验证!");
}
}
}

要点: 字符串属于对象而非基本数据类型,不能使用“= =”来判断两个字符串是否相等,所以要通过equal()来判断两个字符串内容是否相同。使用“= =”判断的是两个字符串对象的内存地址,而非字符串内容。

语法:

    if(表达式){

      若干语句;

    }else If(表达式){

      若干语句;

    }else{

      若干语句;

    }


Example03:判断用户输入月份的季节

运行结果:

Java实例 Part3:流程控制-LMLPHP

实现代码:

import java.util.Scanner;

public class Example03 {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.println("请输入月份:");
int month = scanner.nextInt();
switch (month){
case 12:
case 1:
case 2:
System.out.println(month+"月是冬季!");
break; case 3:
case 4:
case 5:
System.out.println(month+"月是春季!");
break; case 6:
case 7:
case 8:
System.out.println(month+"月是夏季!");
break; case 9:
case 10:
case 11:
System.out.println(month+"月是秋季!");
break; default:
System.out.println("没有这个月份哦!!!");
}
}
}

要点: 该实例用到的是switch选择结构。

语法:

   switch(表达式){

     case 常量表达式1:语句序列1

        [break;]

     case 常量表达式2:语句序列2

        [break;]

     ...

     case 常量表达式n:语句序列n

        [break;]

     default:语句序列n+1

        [break;]

   }


Example04:使用while循环语句与自增运算符循环遍历数组

运行结果:

Java实例 Part3:流程控制-LMLPHP

实现代码:

public class Example04 {
public static void main(String[] args) {
//创建数组
String[] strings = {"Java","C","C++","Pathon","PHP"}; int index = 0; //创建索引变量
System.out.println("编程语言有:");
while (index < strings.length){ //遍历数组
System.out.println(strings[index++]); //自增索引值
}
}
}

要点: 注意自增自减前置和后置的区别。

语法:

   while(条件表达式){

      语句表达式;

   }


Example05:使用for循环输出杨辉三角

要求: 输出10行内容的杨辉三角。利用二维数组,其中杨辉三角的两侧值都为1,其他位置的数值是其正上方的数值与左上角数值之和。

运行结果:

Java实例 Part3:流程控制-LMLPHP

实现代码:

public class Example05 {
public static void main(String[] args) {
int triangle[][] = new int[10][];
//遍历数组的第一层
for (int i = 0;i<triangle.length;i++){
//初始化第二层数组的大小
triangle[i] = new int[i+1];
for (int j = 0;j<=i;j++){
if (i==0||j==0||i==j){
triangle[i][j] = 1;
}else {
triangle[i][j] = triangle[i-1][j] + triangle[i-1][j-1];
}
System.out.print(triangle[i][j]+"\t");
}
System.out.println();
}
}
}

要点: 在二维数组中,第一个下标值表示行数,第二个下标值表示的是列数。两侧数值为0,其余数值通过计算:

      triangle[i][j] = triangle[i-1][j] + triangle[i-1][j-1];

05-14 05:42