这一部分流程控制语句包括:顺序结构、选择结构、循环结构、跳转语句。
具体区别待补充。。。
@
Example01:判断某一年是否为闰年
要求:用户输入年份,并判断输入的年份是否为闰年。
运行结果:
实现代码:
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:验证登录信息的合法性
运行结果:
实现代码:
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:判断用户输入月份的季节
运行结果:
实现代码:
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循环语句与自增运算符循环遍历数组
运行结果:
实现代码:
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,其他位置的数值是其正上方的数值与左上角数值之和。
运行结果:
实现代码:
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];