上练习:一个用嵌套if做的数字比较系统
public static void main(String[] args) {
System.out.println("==欢迎来到数字比较系统,请您按照提示进行输入!==");
Scanner scanner = new Scanner(System.in);//实例化一个 Scanner 对象 提供用户在控制台进行输入
System.out.println("请你输入第一个数字:"); // 输出第一个请求
int i1 = scanner.nextInt();
// 用户输入的格式如果是数字就是nextInt汉字的话是next
// 并且接受用户输入的数字然后用相对应的类型进行接收
System.out.println("请你输入第二个数字:"); // 输出第二个请求
int i2 = scanner.nextInt(); // 第二次进行接收
if (i1!=i2){
// 1. 通过 嵌套 if 来判断用户输入的两次数字中是否相等 如果不相等则执行以下代码块
System.out.println("a和b不相等;a的值为:"+i1+"\t b的值为:"+i2);
System.out.println("请你输入第三个数字:"); // 输出第三次请求
int i3 = scanner.nextInt(); // 进行接收
System.out.println("请你输入第四个数字:"); // 输出第四次请求
int i4 = scanner.nextInt(); // 进行接收
if (i3<i4){ // 判断用户输入的第三次和第四次来进行比较
// 如果第三次的数字小于第四次输入的数字,那么就会执行下面代码
System.out.println("a<b所以a的值为:"+i3+"所以b的值为:"+i4+"所以就相当于:"+i3+"<"+i4);//输出结果
}else if (i3>i4){
System.out.println("a>b a的值为:"+i3+"所以b的值为:"+i4+"所以就相当于:"+i3+">"+i4);
}
}else if(i1==i2){ // 2. 如果相等执行以下代码块
System.out.println("你输入的两个值相等,a的值为:\n "+i1+"\t b的值为:"+i2+"\n恭喜您输入获得数字奖品全新iphone13一台");
}else{
System.out.println("你输入的数字不合法,请您退出!");
}
scanner.close();
}
输出:
==============欢迎来到数字比较系统,请您按照提示进行输入!==============
请你输入第一个数字:
889
请你输入第二个数字:
989
a和b不相等;a的值为:889 b的值为:989
请你输入第三个数字:
888
请你输入第四个数字:
999
a<b a的值为:888所以b的值为:999所以就相当于:888<999
==============欢迎来到数字比较系统,请您按照提示进行输入!==============
请你输入第一个数字:
999
请你输入第二个数字:
999
你输入的两个值相等,a的值为:
999 b的值为:999
恭喜您输入获得数字奖品全新iphone13一台
解析:就是很简单的一个数字比较,用户最多可以输入6次数字
- Switch 多选择结构
-
多选择结构还有一个实现方式就是switch case 语句。
-
switch case 语句判断一个变量与一系列值中某个值是否相等,每个值称为一个分支。
-
switch 语句中的变量类型可以是:从 Java SE7 开始,switch 支持字符串String类型了同时case标签必须为字符串常量或者字面量。语法以及解析:
switch(expression){
case value: // 固定格式 如:case 1 :
// 语句
break; // 可选 // 跳出当前执行
case value:
// 语句
break; // 可选
// 你可以由任意数量的case语句
default : // 可选
// 语句
}
案例:public static void main(String[] args) { // case 穿透! char A = 'A'; // 如: A = n 底下相对应的case就会输出,如果没有break则继续输出n以下的内容,否则就不输出! switch (A){ case 'A': System.out.println("日复一日的学习打卡!");
// break;
case ‘B’ :
System.out.println(“冰冻三尺非一日之寒!”);
break;
case ‘C’ :
System.out.println(“每天进步一点点!”);
break;
}
}
输出:
日复一日的学习打卡!
冰冻三尺非一日之寒!
解析:很明显可以看见代码中case ‘A’: 中的break被注销了,所以没有break的话程序就会继续往下执行,形成case穿透!break的作用就是让程序跳出,不在执行下面语句
扩展知识:~ 反编译: Java能运行都是靠着程序中自动生成的class文件,然后也有class也有底层的编译。
1.第一步:2.第二步:3.第三步:4.第四步:5.第五步:
第六步:
第七步:
- 循环结构
循环:简而言之就是让程序循环的执行,可以根据条件让程序执行多少次!分别有三种分别是:
- while循环
- do…while 循环
- for 循环
在Java5中引入了一种主要用于数组的增强型for循环。
- while循环
-
while是最基本的循环,它的结构为:
-
while(布尔表达式){ // 循环内容.... }
-
-
只要布尔表达式为true,循环会一直执行下去。我们大多数情况是让循环停止下来的,我们需要一个让表达式失效的方式来结束循环。少部分情况需要循环一直执行,比如服务器响应监听等…当循环条件一直为true会造成无限循环【死循环】,我们正常的业务编程中应尽量避免死循环,会影响程序行性能或者造成程序卡死崩溃情况!思考:计算1+1+2+3+4+5+6+…+100=? 练习如下:
public static void main(String[] args) { // 使用 while 来计算 1+2+3+...+100=? int i = 0; int sum = 0; // 和 while(i<=100){ // 先判断条件,最后执行 sum = sum + i; // 和等于和加++后的内容 i++; } System.out.println(sum); // 输出和 }
输出:
5050
- do…while循环
-
对于while循环语句而言,如果不满足条件,则不能进入循环,但有时我们需要即使不满足条件,也至少执行一次。
-
do…while 循环和while循环相似,不同的是,do…while 循环至少会执行一次。语法:
do {
// 代码语句,先执行
}while(布尔表达式); // 后判断
while和do…while的区别:1. while先判断后执行,do…while是先执行后判断!2. do…while总是保证循环体被至少执行一次,只是它们的主要差别。 如:
public static void main(String[] args) {
int i = 0;
int sum = 0;
do {
sum = sum+i; // 先执行一次
i++;
}while (i<=100); // 最后才执行条件
System.out.println(sum);
}
输出:
5050
// while和do...while区别
public static void main(String[] args) {
int i = 0;
while(i<0){ // while 循环是先判断布尔表达式在进行执行
System.out.println(i);
}
System.out.println("*******************");
do {
System.out.println(i); // do...while 是先执行一次在进行判断
}while (i<0);
}
输出:
*******************
0 // 这个0就是do...while所输出的