JAVA-DAY04

交换两个数

package com.woniuxy.test;


public class MyTest02 {


public static void main(String[] args) {

int x=1,y=2;

System.out.println("交换前:");

System.out.println("x="+x);

System.out.println("y="+y);

// int t=x;

// x=y;

// y=t;


// x=x+y; //x=3

// y=x-y; //y=1

// x=x-y; //x=2


x=x^y;

y=x^y;

x=x^y;


System.out.println("交换后:");

System.out.println("x="+x);

System.out.println("y="+y);

}


}


if结构

if(布尔表达式){

//代码块

//如果布尔表达式为true将执行的语句

}


if-else结构

两路分支,二选一语法if(条件){//代码块}else{//代码块2}

image-20211021102207983


多重if

if(条件1){//代码块1}else if(条件2){//代码块2}else if(条件3)//代码块3}else{//代码块4}if 有且只有一个else if可以没有,一个,多个else 可以没有,一个

image-20211021111116248

 
public class MyTest06 {

public static void main(String[] args) {

Scanner scanner=new Scanner(System.in);

System.out.println("输入成绩");

int score=scanner.nextInt();

if(score<0 || score>100) {

System.out.println("分数无效,输入错误");

}else if(score>=90 && score<=100) {

System.out.println("优秀");

}else if(score>=80 ) {

System.out.println("良好");

}else if(score>=70) {

System.out.println("中等");

}else if(score>=60) {

System.out.println("及格");

}else {

System.out.println("不及格");

}

}

}


字符串和字符输入

public class MyTest07 {

public static void main(String[] args) {

Scanner scanner=new Scanner(System.in);

System.out.println("输入姓名");

String name = scanner.next();

System.out.println("姓名:"+name);

//字符比相对要使用equals()方法

System.out.println(name.equals("zs"));

// System.out.println("输入性别");

// //charAt()是String类提供的方法,就是截取字符串中对应下标的字符,0就是第一个

// char gender=scanner.next().charAt(0);

// System.out.println("性别:"+gender);

//

// System.out.println(gender=='男');

//

}

}


选择嵌套

所有的if和else分支中可以再添加选择结构

注意代码格式:有括号层次代码嵌套,缩进


三目运算符

目:参与运算数的个数

单目运算符 +(正) -(负) ++(真增) --(自减)

双目运算符

三目运算符 (boolean值表达式)?(表达式1):(表达式2)

public class MyTest13 {

//求两个数的最大值

public static void main(String[] args) {

Scanner scanner = new Scanner(System.in);

System.out.println("输入一个数");

int numA = scanner.nextInt();

System.out.println("输入一个数");

int numB = scanner.nextInt();

// int max;

// if(numA>numB) {

// max=numA;

// System.out.println("aaaa");

// }else {

// max=numB;

// System.out.println("bbbb");

// }

//优点:结构简单;缺点:不能实现复杂的逻辑功能

int max=(numA>numB)?numA:numB;


System.out.println("max="+max);

}

}


switch-case

switch( 变量或者表达式){

case 常量1:

分支代码块1;

break;

case 常量2:

分支代码块2;

break;

case 常量3:

分支代码块3;

break;

default:

分支代码块3;

break;

}

(表达式)可以使用的数据类型

// JDK1.5以前支持:byte short char int

// JDK1.5新增枚举字符串

// JDK1.7新增字符串

1)case标签后面必须为字符型常量和字面量!!!!

2)case语句的数据类型必须和变量的数据类型一致

3)变量或者表达式的值和某个一个case分支的常量值相等,执行当前分支

4)defalut可以不要,可以在任意地方!建议在最后一排!

5)case后面的常量不能重复

6)break 每个分支结束应该都有一个break;如果没有,case穿透,一旦进入这个分支,后面的分支不会再判断,一直往下执行,知道全部结束或者碰到后面的break;

7)switch case执行时,一定先匹配,匹配成功返回当前case值,再根据是否有break,判断是否继续持续输出或者是跳出判断。

8)如果 case 语句块中没有 break 语句时,JVM 并不会顺序输出每一个 case 对应的返回值,而是继续匹配,匹配不成功则返回默认 case。

9)如果 case 语句块中没有 break 语句时,匹配成功后,从当前 case 开始,后续所有 case 的值都会输出,如果后续的 case 语句块有 break 语句则会跳出判断。

Scanner scanner = new Scanner(System.in);

System.out.println("输入名次");

int num = scanner.nextInt();

switch (num) {

case 1:

System.out.println("第一名");

System.out.println("第一名1");

break;

case 2:

System.out.println("第二名");

System.out.println("第二名2");

break;

case 3:

System.out.println("第三名");

System.out.println("第三名3");

break;

default:

System.out.println("没有奖励");

System.out.println("没有奖励4");

break;

}

多重if和switch-case的优缺点:

多重if:功能强大

switch-case:多重if的在特殊情况下的用法

匹配的数据类型有限制,有限区间

作业

1、输入四位会员号,会员号的百位数字等于产生的随机数字即为幸运会员

//输入四位数 1234

//获取四位数的百位数

//系统产生随机数 调用Math类的random()方法 Math.random()

//判断是否中奖 if-else

public class GressNumber {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		Scanner scanner = new Scanner(System.in);
		boolean a = true;
		while (a) {
			System.out.print("请输入一个四位数:");
			String num;
			num = scanner.nextLine();
			int num1 = Integer.parseInt(num);
			if (num.length() == 4) {
				num1 = (num1 - ((num1 / 1000) * 1000)) / 100;
				System.out.println("百位数是" + num1);
				int roundnumber;
				roundnumber = (int) (Math.random() * 10);
				System.out.println("中奖号码:" + roundnumber);
				if (num1 == roundnumber) {
					System.out.println("恭喜中奖");
					a = false;
				} else {
					System.out.println("很遗憾你没有中奖");
				}
			}else {
				System.out.println("你输入的数字不是4位,请重新输入");
			}

		}
		scanner.close();

	}

2、输入成绩,输出对应的等级

import java.util.Scanner;
public class ScoreClassify {

	public static void main(String[] args) {
		Scanner scanner = new Scanner(System.in);
		System.out.print("请输入成绩:");
		int score = scanner.nextInt();
		if (score >= 90) {
			System.out.println("优秀");
		}else if (score >= 80) {
			System.out.println("良好");
		}else if (score >= 60) {
			System.out.println("一般");
		}else {
			System.out.println("不及格");
		}
		scanner.close();
	}
	
}

3、系统中有原始的账号密码,用户输入账号密码,提示登录成功或者失败

public class LoginPassword {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		Scanner scanner = new Scanner(System.in);
		String account = "张三";
		String password = "123456";
		System.out.print("请输入账户:");
		String scanAccout = scanner.nextLine();

		if (account.equals(scanAccout)) {
			System.out.print("请输入密码:");
			String scanPassword = scanner.nextLine();
			if (password.equals(scanPassword)) {
				System.out.println("登录成功");
			} else {
				System.out.println("密码错误");
			}
		} else {
			System.out.println("账户不存在");
		}
		scanner.close();

	}
}

4、分段函数

x>0 y=1

x=0 y=0

x<0 y=-1

输入变量x的值,输出对应的函数值y

public class XToY {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		Scanner scanner = new Scanner(System.in);
		System.out.print("x=");
		int x = scanner.nextInt();
		int y = -2;
		if (x > 0) {
			y = 1;

		} else if (x == 0) {
			y = 0;

		} else if (x < 0) {
			y = -1;

		}
		if (y != -2) {
			System.out.println("y=" + y);
		}
		scanner.close();
	}

}

5、学校举行运动会,百米赛跑跑入10秒内的学生有资格进决赛,根据性别分别进入男子组和女子组

import java.util.Scanner;

import sun.print.resources.serviceui_zh_CN;

public class GameDivideGroups {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		Scanner scanner = new Scanner(System.in);
		System.out.println("请输入一个成绩");
		int time  = scanner.nextInt();
		if (time <= 10) {
			System.out.println("请输入你的性别");
			String sex = scanner.next();
			char gender = sex.charAt(0);
			if (gender == '男') {
				System.out.println("男子组");
			}else {
				System.out.println("女子组");
			}
		}else {
			System.out.println("不满足条件");
		}
		scanner.close();
	}

}

6、购物结算

image-20211021143057567

public class MyTest12 {

public static void main(String[] args) {

Scanner scanner = new Scanner(System.in);

System.out.println("是否是会员y/n");

String isCust=scanner.next();

System.out.println("输入购物总金额");

double price=scanner.nextDouble();

double pay=price;


if(isCust.equals("y")) {

//会员

if(price>=200) {

pay=price*0.75;

}else {

pay=price*0.8;

}

}else {

//非会员

if(price>=100) {

pay=price*0.9;

}//else {

// pay=price;

// }

}


//统一输出

System.out.println("应付总金额:"+price);

System.out.println("实付总金额:"+pay);

}

}
public class VipMoney {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		Scanner scanner = new Scanner(System.in);
		System.out.println("请输入是否是会员:是(y)/否(其他字符)");
		String vip = scanner.next();
		System.out.println("请输入购物金额:");
		Double dicount;
		double money = scanner.nextDouble();
		if (vip.equals('y')) {
			if (money >= 200) {
				dicount = money * 0.75;
			}else {
				dicount = money * 0.8;
			}
			
		}else if (money >= 100) {
			dicount = money * 0.9;
		}else {
			dicount = money;
		}
		System.out.println("应付金额为"+money+"元");
		System.out.println("实付金额为"+dicount+"元");
		scanner.close();
	}

}

7、求两个数的最大值(使用选择结构和三目运算符)

public class TwoNumberCompare {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		Scanner scanner = new Scanner(System.in);
		System.out.println("请输入两个数");
		int num1 = scanner.nextInt();
		int num2 = scanner.nextInt();
/*		if (num1 > num2) {
			System.out.println("max="+num1);
		} else if (num1 < num2) {
			System.out.println("max="+num2);
		}else {
			System.out.println("两数相等");
		}*/
		int max=(num1>num2)?num1:num2;
		System.out.println("max="+max);
		scanner.close();
	}

}

8、求三个数的最大值(使用选择结构和三目运算符)

public class ThreeNumberCompare {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		Scanner scanner = new Scanner(System.in);
		System.out.println("请输入三个数");
		int num1 = scanner.nextInt();
		int num2 = scanner.nextInt();
		int num3 = scanner.nextInt();
	/*	if (num1 > num2) {
			if (num1 > num3) {
				System.out.println("max="+num1);
			}else {
				System.out.println("max="+num3);
			}
		} else if (num1 < num2) {
			if (num2 > num3) {
				System.out.println("max="+num2);
			}else {
				System.out.println("max="+num3);
			}
		}else if(num1 >num3){
			if (num1 > num2) {
				System.out.println("max="+num1);
			}else {
				System.out.println("max="+num2);
			}
		}else {
			if (num3 > num2) {
				System.out.println("max="+num3);
			}else {
				System.out.println("max="+num2);
			}
		}
*/
		int temp=(num1>num2)?num1:num2;
		int max=(temp>num3)?temp:num3;
		System.out.println("max="+max);
		scanner.close();
	}

}

9、输入三个数,按从小到大输出

public class SortThreeNumber {

	public static void main(String[] args){
	    int num1=0,num2=0,num3=0;
	    Scanner scanner = new Scanner(System.in);
	    System.out.println("请输入三个数:");
	    num1=scanner.nextInt();
	    num2=scanner.nextInt();
	    num3=scanner.nextInt();
	    int j;
	    if(num1>num2){
	        j=num2;
	        num2=num1;
	        num1=j;
	    }
	    if(num1>num3){
	        j=num3;
	        num3=num1;
	        num1=j;
	    }
	    if(num2>num3){
	        j=num3;
	        num3=num2;
	        num2=j;
	    }
	    System.out.println(num1+"<"+num2+"<"+num3);
	}
}

10、输入两个运算数和运算符(+-*/),做相应的算数运算,输出结果。(使用多重if和switch-case)

public class IntputNumberSymbol {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		Scanner scanner = new Scanner(System.in);
		System.out.println("请输入两个运算数:");
		int num1 = scanner.nextInt();
		int num2 = scanner.nextInt();
		System.out.println("请输入运算符:");
		String symbol = scanner.next();
		double result = 0;
		boolean flag = true;

		/*
		 * if (symbol.equals("+")) { result = num1 + num2; }else if (symbol.equals("-"))
		 * { result = num1 + num2; }else if (symbol.equals("*")) { result = num1 * num2;
		 * }else if (symbol.equals("/")) { if (num2 == 0) {
		 * System.out.println("除数不能为0"); flag = false; }else { result = num1 / num2; }
		 * 
		 * }else { flag = false; System.out.println("运算符错误"); } if (flag) {
		 * System.out.println(num1+symbol+num2+"="+result); }
		 */

		switch (symbol) {
		case "+":
			result = num1 + num2;
			break;
		case "-":
			result = num1 - num2;
			break;
		case "*":
			result = num1 * num2;
			break;
		case "/":
			if (num2 == 0) {
				System.out.println("除数不能为0!!");
				flag = false;
			} else {
				result = num1 / num2;
			}
			break;
		default:
			System.out.println("运算符错误!!");
			flag = false;
			break;
		}
		if (flag) {
			System.out.println(num1 + symbol + num2 + "=" + result);
		}
		scanner.close();

	}

}

11、机票原价4000,4月到10月为旺季,头等舱打9折,经济舱75折。 其余月份为淡季,头等舱打6折,经济舱3折。输入购票月份和舱位代号(1代表头等舱,2代表经济舱),计算出实际应付的机票价格

public class FlyPrice {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		Scanner scanner = new Scanner(System.in);
		System.out.println("输入购票月份:");
		int month = scanner.nextInt();
		System.out.println("输入舱位代号(1代表头等舱,2代表经济舱):");
		int num = scanner.nextInt();
		int price = 4000;
		double dicount=price;
		switch (month) {
		case 4:
		case 5:
		case 6:
		case 7:
		case 8:
		case 9:
		case 10:
			if (num == 1) {
				dicount = price * 0.9;
			}else {
				dicount = price * 0.75;
			}
			break;
		case 1:
		case 2:
		case 3:
		case 11:
		case 12:
			if (num == 1) {
				dicount = price * 0.6;
			}else {
				dicount = price * 0.3;
			}
			break;

		default:
			break;
		}
		System.out.println("实际应付价格:"+dicount+"元");
		scanner.close();
	}

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值