栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

Java学习——逻辑运算、双分支结构(ifelse)

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Java学习——逻辑运算、双分支结构(ifelse)

  • 逻辑运算(以关系运算为基础的,结果仍然为布尔值)基本的有3个,分别是:与(&&)(短路与),或(||)(短路或),非(!)(短路非)

 

1.1与运算:

短路与:(关系表达式1)&&(关系表达式2)&&(关系表达式3)……(出现第一次false时,后续的运算已经不能影响结果了,则立即结束运算)

不短路的与运算:(关系表达式1)&(关系表达式2)&(关系表达式3)……(出现第一次false时,虽然后续的运算已经不能影响结果了,但仍然将与运算执行到最后!)

当所有结果为:true时,最终结果为:true,否则为:false(出现一次false即可结束运算,确定结果为false)

1.2或运算:

短路或:(关系表达式1)||(关系表达式2)||(关系表达式3)……

当所有结果为:false时,最终结果为:false,否则为:true(出现一次true即可结束运算,确定结果为true)

非短路或运算:(关系表达式1)|(关系表达式2)|(关系表达式3)……

当所有结果为:false时,最终结果为:false,否则为:true(出现一次true确定结果为true,但语句依然执行到最后)

1.3非运算

(关系表达式1)!结果是关系表达式1的布尔值取反

赋值运算

//赋值运算
//例1:
int i0=5;
int i1=i0;
int i2=5,i3=7,i7=10; //基础赋值,用“=”即可
int p=5;
//拓展赋值运算符
p+=10; //:p=p+10;
p-=5;  //: p=p-5;
p*=2;  //: p=p*2;
p/=8;  //: p=p/8;
p%=3;  //: p=p%3;
System.out.println("p:"+p);
//例2:
short s1=5;
//s1=s1+5;  //错误,5的直接量为int类型,无法和short进行运算(转换);
s1+=5;      //正确,拓展赋值运算,自带数据类型的强制转换功能;
System.out.println("s1"+s1);
  • 3.三目运算(条件运算)

三目运算(条件运算):用于在设定的条件满足时进行某种运算,条件不满足时,进行另一种运算。(通常用于较简单的条件选择运算)
三目运算语法:(条件表达式)?(空格)(条件表达式为true是的返回值):(条件表达式为false时的返回值)

      int f1=-8;
      int f2=((f1>0)? 1:-1);  //先判断f1>0这个关系是否成立,如果为true,把1赋给f2,如果不成立,把-1赋给f2
      System.out.println("f2:" + f2);

运行结果:

f2:-1

课堂练习(闰年问题)

编写一个小程序(LeapYear),输入一个年份,判断它是否为闰年(LeapYear),闰年条件(满足下列条件之一即可):

(1)年份能够被4整除,但不能被100整除。

(2)年份能够被400整除

分析题目,要用到的Java基本知识点:Scanner;三目运算;变量的算数运算;输出函数……

解答:

package day03;
	import java.util.Scanner;
public class LeapYear {

	public static void main(String[] args) {
		Scanner input=new Scanner(System.in);
		System.out.println("请输入当前年份:");
		int year=input.nextInt();
		boolean b1=(year%4==0)&&(year%100!=0); //年份能够被4整除,但不能被100整除。
		boolean b2=(year%400==0);//年份能够被400整除
		System.out.println((b1||b2)? "该年份是闰年。":"该年份不是闰年。");
	}

}

运行结果:

  •  控制语句:条件控制语句if

双分支结构(两条路必走其一),满足条件if时执行一个分支,不满足时执行另一个分支(什么都不做)

语法结构:

if (boolean){    //判断boolean的值,为true时,执行后续语句,为false时结束if语句

   语句1

语句2

语句3

……

}

if条件控制语句,完成的功能是:当条件满足时,执行语句中的一条或者多条语句,当条件不满足时,结束if条件控制语句(什么都不做)。

程序举例:

package day03;

public class ConditionDemo01 {

	public static void main(String[] args) {
		int a=6;
		if(a%2==0){
			System.out.println(a+"是偶数");	
			}
	}

}

运行结果:

6是偶数

  • 控制语句:条件控制语句if else

双分支结构(两条路必走其一),满足条件if时执行一个分支,不满足时执行另一个分支(执行else中的语句)

if (boolean){    //判断boolean的值,为true时,执行后续语句,为false时,执行else语句

             语句块1……

}else{

      语句块2……

}

if  else语句的含义是,当if条件满足时,执行if里面的语句,如果if条件不满足,不执行if里面的语句,转而执行else里面的语句。

程序举例:

package day03;

public class ConditionDemo02 {

	public static void main(String[] args) {
		int a=5;
		if(a%2==0){     //表示if条件为true时,需要执行语句的开始 ,输入技巧:录入“{”后,键入回车键,eclipse会补齐“}”
			System.out.println(a+"是偶数");	
			}else{     //表示if条件为false时,不执行if中的语句,转而执行else中的语句
				System.out.println(a+"是奇数");
			}
	}

}

运行结果:

5是奇数 

课堂练习(商店收银系统01)

   小程序:商店收银系统(Casher_Sys01),需要完成的功能,提示用户输入商品单价,商品数量,付款金额,输出:找零金额(付款金额不足时提示:“您的付款金额不足,请补付:**”)

解答:

package day03;
   import java.util.Scanner;
public class Casher_Sys01 {

	public static void main(String[] args) {
		Scanner input=new Scanner(System.in);
		System.out.println("请输入商品的单价:");
		double price=input.nextDouble();
		System.out.println("请输入商品的数量:");
		double num=input.nextDouble();
		System.out.println("请输入付款金额:");
		double money=input.nextDouble();
		double totalPrice=price*num;
			if(money>=totalPrice){
				System.out.println("找零:"+(money-totalPrice)+"元。");
			}else{
				System.out.println("您的付款金额不足,请补付:"+(totalPrice-money)+"元。");
			}
	}

}

运行结果:

 

课堂练习(商店收银系统02)

   小程序:商店收银系统(Casher_Sys02),需要完成的功能,提示用户输入商品单价,商品数量,付款金额,当商品总价达到300元及以上时,商品总价打88折,并且,总价抹零优惠。输出:找零金额(付款金额不足时提示:“您的付款金额不足,请补付:**”)·

解答:

package day03;
import java.util.Scanner;
public class Casher_Sys02 {
	public static void main(String[] args) {
		Scanner input=new Scanner(System.in);
		System.out.println("请输入商品的单价:");
		double price=input.nextDouble();
		System.out.println("请输入商品的数量:");
		double num=input.nextDouble();
		System.out.println("请输入付款金额:");
		double money=input.nextDouble();
		double totalPrice=price*num;
		    if(totalPrice>=300){
		    	totalPrice=(int)(totalPrice*0.88);  
		   //如果符合打折条件,总价打折,因为int到double类型是由小到大的数据类型转换,所以可以自动转换
		    }
		    
			if(money>=totalPrice){
				System.out.println("找零:"+(money-totalPrice)+"元。");
			}else{
				System.out.println("您的付款金额不足,请补付:"+(totalPrice-money)+"元。");
			}

	}

}

运算结果:

 

课堂练习(商店收银系统03)

   小程序:商店收银系统(Casher_Sys03),需要完成的功能,提示用户输入商品单价,商品数量,付款金额,当商品总价每满299元,省50元,并且抹零优惠。输出:找零金额(付款金额不足时提示:“您的付款金额不足,请补付:**”)·

解答:

package day03;
import java.util.Scanner;
public class Casher_Sys03 {
	public static void main(String[] args) {
		Scanner input=new Scanner(System.in);
		System.out.println("请输入商品的单价:");
		double price=input.nextDouble();
		System.out.println("请输入商品的数量:");
		double num=input.nextDouble();
		System.out.println("请输入付款金额:");
		double money=input.nextDouble();
		double totalPrice=price*num;
		    if(totalPrice>=299){
		    	totalPrice=(int)(totalPrice-(int)(totalPrice/299)*50);  
		   //如果符合打折条件,进行打折处理找出满了多少个299元
		    	
		    }
		    
			if(money>=totalPrice){
				System.out.println("找零:"+(money-totalPrice)+"元。");
			}else{
				System.out.println("您的付款金额不足,请补付:"+(totalPrice-money)+"元。");
			}
			

	}

}

运算结果:

 

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/332534.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号