第三天
逻辑运算符
比较运算符是用来对运算符左右两个变量的值进行比较,得到结果是boolean类型,因为无论是何种比较,结果只有真或假两种
x==33 & ++y>0 该表达式无论结果如何,y的值总
会+1。x33 && ++y>0 则y的值不+1。
表达式x33 | ++y>0和表达式x==33 || ++y>0 同理。
逻辑运算符:一般用于比较boolean类型,结果也是boolean类型。 &、|、!、&&、|| & && 与 并且 两个条件同时满足 两个同时为真才为真,否则为假。 | || 或 或者 两个条件满足一个即可 ! 非 取反
三目运算符
三目运算符: 格式:变量 = 条件表达式?结果1:结果2 条件表达式条件成立 变量 = 结果1 条件表达式条件不成立 变量 = 结果2 int a = 100;
顺序结构
这段代码中的运行结果是2,2。原因就是顺序结构,所谓顺序结构,其实就是按照代码原本应该的方式进行执行。
从上到下,从左到右。
语法
if
执行流程
if(条件表达式){ 代码块… } if关键字,如果的意思 条件表达式: 结果是真或者假 代码块… 执行流程: 表达式结果为真,代码块就执行;表达式不成,代码块不执行
选择结构的第二种写法。增加了一种情况,属于条件分支,类似于Y字路口。功能与三目运算相同。但不能如同三目运算一样直接将结果进行赋值操作,if没有结果反馈,三目运算始终有结果反馈。
首先判断if()小括号中的表达式结果,如果是true,则执行if(){}大括号内的代码;如果是false,则执行else{}大括号内的代码。必然会也只会执行一个大括号内的代码。
if(条件表达式){ 代码块1… }else{ 代码块2… } else: 否则的意思。也就是条件表达式不成立,代码块2要执行
if(条件1){ 代码块1… }else if(条件2){ 代码块2… }else if(条件3) 代码块3… }else if(条件4) 代码块4… }else{ 代码块5… } if 条件1不成立,往下走 判断条件2,如果条件2成立,执行代码块2,不成立,往下走 判断条件3,如果条件3成立,执行代码块3,不成立,往下走 判断条件4,如果条件4成立,执行代码块4,不成立,往下走 上面的条件都不成立的话,执行代码块5 注意事项:但凡有一个成立了,就不往下判断了
选择结构的第四种写法。其实不只是if结构,无论任何结构,只要是在{}大括号内,我们可以编写任何逻辑代码。
需要先进行完成判断,在进行内层判断。
switch
使用switch解决类似问题,switch会将case后的值写入栈中,表达式的结果会直接在栈中进行查询并选择,效率更高。
语法说明:
1.表达式的取值:byte,short,int,char;JDK5以后可以是枚举;JDK7以后可以是String。
2.case后面跟的是要和表达式进行比较的值。
3.break表示中断,结束的意思,可以结束switch语句。
4.default语句表示所有情况都不匹配的时候,就执行该处的内容,和if语句的else相似。
使用switch的注意事项:
1.case后面只能是常量,不能是变量,而且,多个case后面的值不能相同。
2.default可以省略。但一般不建议,除非结果是可以预计且不会发生变化的。
3.break可以省略,一般不建议。
4.default的位置可以出现在switch语句任意位置。
5.switch语句的结束条件必定是遇到break或已经执行到最末尾。
练习
public class Demo03 {
public static void main(String[] args) {
public class Demo05 {
public static void main(String[] args) {
System.out.println("----欢迎来到欣知饭店----\n" +
"主菜单>查询今日特价菜");
System.out.println("请输入您的性别");
Scanner scanner=new Scanner(System.in);
String next=scanner.next();
System.out.println("请输入您查询星期几");
Scanner scanner1=new Scanner(System.in);
String next1=scanner1.next();
if (next.equals("男")) {
switch (next1){
case "星期一":
System.out.println("星期一红烧肉15元");
break;
case "星期二":
System.out.println("星期二麻辣拌13元");
break;
case "星期三":
System.out.println("星期三拉面13元");
break;case "星期四":
System.out.println("星期四火锅130元");
break;
case "星期五":
System.out.println("星期五鱼香肉丝13元");
break;
case "星期六":
System.out.println("星期六刀削面13元");
break;
case "星期日":
System.out.println("星期日烤串130元");
break;
}
}else if (next.equals("女")){
switch (next1){
case "星期一":
System.out.println("星期一西芹百合12元");
break;
case "星期二":
System.out.println("星期二麻辣拌13元");
break;
case "星期三":
System.out.println("星期三拉面13元");
break;case "星期四":
System.out.println("星期四火锅130元");
break;
case "星期五":
System.out.println("星期五鱼香肉丝13元");
break;
case "星期六":
System.out.println("星期六刀削面13元");
break;
case "星期日":
System.out.println("星期日烤串130元");
break;
}
}
}
}```
### 练习2
```java
System.out.println("--------欢迎来到欣知商城--------\n"+
"主菜单 >使用抵用卷\n" +
"1.美的微波炉--370元\n" +
"2.飞利浦剃须刀--267元\n" +
"3.格力空调--3225元\n" +
"4.潮流卫衣--577元\n" +
"5欣知小姐姐网红舞教程--139元");
System.out.println("请输入您要购买的商品");
Scanner scanner=new Scanner(System.in);
int i=scanner.nextInt();
String name ="";
int num = 0;
int num1 =0;
switch (i){
case 1:
name="美的微波炉";
num =370;
num1 =370-20;
break;
case 2:
name="2.飞利浦剃须刀";
num =267;
num1 =267-20;
break;
case 3:
name="格力空调";
num =3225;
num1 =3225-20;
break;
case 4:
name="潮流卫衣";
num =577;
num1 =577-20;
break;
case 5:
name="欣知小姐姐网红舞教程";
num =139;
num1 =139-20;
break;
}
System.out.println("您选择的商品"+name+"原价"+num+"抵用卷20元"+"现价"+num1+"请付款");
Scanner scanner1=new Scanner(System.in);
int i1=scanner1.nextInt();
System.out.println("找零"+(i1-num1));
}
}```