学习了分支结构 循环结构和switch结构
1分支结构
用于处理代码中出现的一些需要判断,并且按按条件处理的情况!!!
-
条件约束考虑清楚
-
处理的过程考虑清楚
-
数据类型选择
2 Switch -
switch case结构和if else if 结构类似,两者是可以互通
-
if else if结构中可以处理范围性数据,处理的数据区间更加广泛
-
switch case处理数据明确性更强,处理针对性选择比较合适
3 循环 -
循环过程中最核心的内容就是循环变量,需要对于循环变量的执行的过程中数值变量完全掌握!!!如果无法明确循环的次数,循环变量的值,循环的过程,可以将循环代码中变量的变更过程记录。
-
循环过程中需要注意无限循环问题,控制无限循环问题的出现。一定要保证循环条件有效性或者代码中存在一个跳出循环的机制。
-
do while循环中,第一次循环体的执行是没有经过任何的条件判断的,需要注意!
【已知,可控】 -
while和do while循环结构是可以进行互换的。
-
然后在while和do while之间考虑使用的情况下,一般推荐使用while循环。但是不代表do while没有实际的使用效果。
1 顺序结构
代码从上到下,从左至右执行,最基本原则。
2 分支结构
代码满足不同的条件,执行不同的结果
3 循环结构
代码中存在需要多次执行的情况,这里会使用到循环结构
例题
. 表达式(取值操作)
输入4个数,若第一个数第二个数相等,第三个数和第四个数的
和与第一个数和第二个数的和相等,输出1,否则输出0
import java.util.Scanner;
class Demo0502 {
public static void main(String[] args) {
int a = 1;
int b = 1;
int c = 1;
int d = 1;
Scanner sc = new Scanner(System.in);
System.out.println("请输入第1个数:");
a = sc.nextInt();
System.out.println("请输入第2个数:");
b = sc.nextInt();
System.out.println("请输入第3个数:");
c = sc.nextInt();
System.out.println("请输入第4个数:");
d = sc.nextInt();
if(a == b && (c + d) == (a + b)) {
System.out.println("1");
}else {System.out.println("0");}
}
}
. 流程控制(数值比较2)
定义三个整型变量x,y,z,从键盘初始化变量值,判断三个变量的大小,将较大的值
赋给变量max,将max输出,注意输入使用Scanner输入
import java.util.Scanner;
class Demo0504 {
public static void main(String[] args) {
int x = 0;
int y = 1;
int z = 2;
int max = 0;
Scanner sc = new Scanner(System.in);
System.out.println("请输入x:");
x = sc.nextInt();
System.out.println("请输入y:");
y = sc.nextInt();
System.out.println("请输入z:");
z = sc.nextInt();
if (x >= y && x >= z) {
max = x;
}else if (y >= x && y >= z) {
max = y;
}else if (z >= x && z >= y) {
max = z;
}
System.out.println("max:" + max);
}
}
. 流程控制(月份天数判断)
输入一个月数,然后输出对应月份有多少天(不考虑闰年),将天数输出,注意输入
使用Scanner输入
比如:
输入 6 输出为30
输入 2 输出为28
import java.util.Scanner;
class Demo0505 {
public static void main(String[] args) {
int a = 0;
Scanner sc = new Scanner(System.in);
System.out.println("请输入月份:");
a = sc.nextInt();
switch(a) {
case 1:
System.out.println("本月天数:31");
break;
case 2:
System.out.println("本月天数:28");
break;
case 3:
System.out.println("本月天数:31");
break;
case 4:
System.out.println("本月天数:30");
break;
case 5:
System.out.println("本月天数:31");
break;
case 6:
System.out.println("本月天数:30");
break;
case 7:
System.out.println("本月天数:31");
break;
case 8:
System.out.println("本月天数:31");
break;
case 9:
System.out.println("本月天数:30");
break;
case 10:
System.out.println("本月天数:31");
break;
case 11:
System.out.println("本月天数:30");
break;
case 12:
System.out.println("本月天数:31");
break;
default:
System.out.println("输入数据错误");
}
}
}
. 流程控制(数值比较1)
定义两个整型变量x,y,从键盘初始化变量值,判断两个变量的大小,将较大的值赋
给变量max,将max输出,注意输入使用Scanner输入
import java.util.Scanner;
class Demo0503 {
public static void main(String[] args) {
int x = 0;
int y = 1;
int max = 0;
Scanner sc = new Scanner(System.in);
System.out.println("请输入x:");
x = sc.nextInt();
System.out.println("请输入y:");
y = sc.nextInt();
if (x >= y) {
max = x;
}else {max = y;}
System.out.println("max:" + max);
}
}
. 表达式(立方)
编写程序,计算用户输入数据的立方
import java.util.Scanner;
class Demo0509 {
public static void main(String[] args) {
int a = 1;
int b = 1;
Scanner sc = new Scanner(System.in);
System.out.println("请输入数据:");
a = sc.nextInt();
b = a * a * a;
System.out.println(b);
}
}
学到了一些开发思想,从用户角度出发
1 用户输入数据合法性判断
就算在提示中告知用户需要输入的数据范围是多少,但是用户在实际使用的过程中,依然存在输入错误的情况。需要对于用户输入的数据进行合法性判断,如果用户输入的内容符合我们的判断逻辑需求,进入数据处理过程。如果不符合要求,直接终止程序!!
2 用户友好性提示
代码运行需要站着用户的角度来思考问题。用户进行操作时,需要给予用户足够的提示和引导,告知用户当前操作如何完成,考虑代码的友好性!!!
用户粘性问题!!!用户提示!!!用户友好性!!!