java基础程序练习(二)

一、数据类型

1.简介

基本数据类型:

整数:byte short int long 分别为1 2 4 8字节

小数:float double 单精度 双精度  (float赋值数字后面必须加F,float a=12.2F)

字符:char

布尔值:boolean

引用类型:

数组 [ ]

类  class  (自定义,系统类String)

接口  interface

2.数据转换

自然转换:

基本条件:①兼容类型;②目标类型大于源类型,左边=右边,小的赋值给大的
      
byte short char-int-long-float-double
byte,short,char相互转换,他们参与运算首先转为int类型
如果一个操作数位double型,则整个表达式可以提升为double型

boolean类型不能和其他七种类型转换

强制转换:

基本条件:①兼容类型;②目标类型小于源类型,大的赋值给小的;③目标=(数据类型int、double等)源;④可能造成数据精度丢失

public class Work5 {
	public static void main(String[] args) {
        int i=1;
        byte b1=5;

        //+=会自动做强转,b1=(byte)(b1+i)
       
        b1+=i;
        byte b2=5;

        b2=(byte) (b2+i); //基本强制转换式	
  }
}

二、选择结构

 1.逻辑运算符  

2.if结构

if(条件){
    //代码块
}



if(条件){
    //代码块
}else{
    //代码块
}

//if语句在考虑限定范围时,可以把剩余的归为else;不强制必须有else

例:输入成绩,Java成绩大于98分,而且音乐成绩大于80分,老师奖励他;或者Java成绩等于100分,音乐成绩大于70分,老师也可以奖励他

import java.util.Scanner;

public class Work {
	public static void main(String[] args) {
//输入成绩,Java成绩大于98分,而且音乐成绩大于80分,老师奖励他;或者Java成绩等于100分,音乐成绩大于70分,老师也可以奖励他	
	Scanner scanner=new Scanner(System.in);

	System.out.println("Java成绩");
	int java=scanner.nextInt();
	System.out.println("音乐成绩");
	int music=scanner.nextInt();
	
	if(java>98&&music>80||java==100&&music>70) {
		
		System.out.println("奖励iPhone13");
		
	}
  }
}

例:输入四位抽奖号码,百分位和随机数字相同,则得到奖励

import java.util.Scanner;

public class Work {
	public static void main(String[] args) {
	
	//输入成绩,输出对应的等级
	Scanner scanner=new Scanner(System.in);
	System.out.println("请输入四位抽奖号码");
	int number=scanner.nextInt();
//四位抽奖号码除以100,再与10进行模运算,得到百分位数字
//如1234;1234/100=12;12%10余数为2
	int hunder=number/100%10;

//random的类库为Java默认,不需要再引用。
//此语句为随机产生小数,需要乘以10增大十倍,再用int强制取整数部分

	int random=(int)(Math.random()*10);


	System.out.println("中奖百位号:"+random);
	if(hunder==random) {
		System.out.println("恭喜您,赢得大奖!");
	}else {
		System.out.println("很遗憾,再接再励!");
	}
  }
}

3.多重if

if(条件1){
    //代码块1
}
else if(条件2){
    //代码块2
}
    ······
else{
    //代码块n
}
if有且只有一个
else if 可以 没有、一个、多个
else 可以 没有、一个

例:输入考试成绩,得到相应的等级评价 

import java.util.Scanner;

public class Work {
	public static void main(String[] args) {
	
	//输入成绩,输出对应的等级
	Scanner scanner=new Scanner(System.in);
	System.out.println("请输入考试成绩");
	int score=scanner.nextInt();
	if(score>100||score<0) {
		System.out.println("成绩不存在");
	}else if(score>=90) {
		System.out.println("成绩优秀");
	}else if(score>=80) {
		System.out.println("成绩良好");
	}else if(score>=60) {
		System.out.println("成绩中等");
	}else {
		System.out.println("成绩不合格");
	}
	
  }
}

4.三目运算符

 目:参与运算的个数
三目运算符:(boolean值表达式)?(表达值1):(表达值2);
          举例:  int date=(date1>date2)?(date1):(date2);

如果date1>date2成立,则date=date1;反之亦然。

例:求两个数的最大值,使用if和三目运算符

import java.util.Scanner;

public class Work{
	public static void main(String[] args) {
	
	//求两个数的最大值(使用选择结构和三目运算符)
		Scanner scanner=new Scanner(System.in);
		System.out.println("输入第一个数");
		double date1=scanner.nextDouble();
		System.out.println("输入第二个数");
		double date2=scanner.nextDouble();

//		double date;
//		if(date1>date2) {
//			date=date1;
//		}else {
//			date=date2;
//		}
//		System.out.println("最大值="+date);

		double date=(date1>date2)?(date1):(date2);
		System.out.println("最大值="+date);
  }
}

5.switch-case

switch(表达式){
    case 常量:
             //执行代码
            break;
    default:
            //执行代码
            break;
}
default 可以不要
case 后面的常量不能重复
break 每个结束之后必须有,如果没有就会case穿透,一旦运行就会执行全部代码,
直到代码全部结束,或遇到后面的break

swit-case匹配数据有限,是多重if的特殊用法

例:输入两个变量,做基本运算

import java.util.Scanner;

public class Work10 {
	public static void main(String[] args) {
		Scanner scanner=new Scanner(System.in);

		System.out.println("输入第一个数");
		int a=scanner.nextInt();

		System.out.println("输入第二个数");
		int b=scanner.nextInt();

		System.out.println("输入运算符号");
		String type=scanner.next();

		int result=0;
		boolean flag=true;//布尔值,对运算符号判断,初始为正确数据进入运算

		boolean zero=false;//布尔值,对除数是否为0判断,初始为错误除数不为零
	
		
		switch(type){
		case "+":
			result=a+b;
			break;
		case "-":
			result=a-b;
			break;
		case "*":
			result=a*b;
			break;
		case "/":
			if(b==0) {
				flag=false;
				zero=false;
			}else {
				result=a/b;
				break;				
			}
			
		default:
			flag=false;
			break;
		}

		if(flag) {
		System.out.print("答案="+result);			
	    }else if(zero) {		
		System.out.println("除数为零,无法计算!");			
	    }else {
		System.out.print("运算符号不符合规范");
	    }
  }
}

三、拓展

1.密码账号登录

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

import java.util.Scanner;

public class Work {
	public static void main(String[] args) {

	Scanner scanner=new Scanner(System.in);

	System.out.println("输入账号");
	int account=scanner.nextInt();

	System.out.println("输入密码");
	int password=scanner.nextInt();

	int accounted=123123;
	int passworded=456456;

//账号和密码都要正确,逻辑运算符用  &&与
	if(account==accounted&&password==passworded) {
		System.out.println("登陆成功!");
	}else {
		System.out.println("登陆失败!");
	}
	
  }
}

2.用多重if表达分段函数

import java.util.Scanner;

public class Work {
	public static void main(String[] args) {
	
	Scanner scanner=new Scanner(System.in);

	System.out.println("输入变量");
	int x=scanner.nextInt();
    int y; 

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

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

3.学习百米赛跑

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

首先判断是否进入决赛,然后再分男女组

import java.util.Scanner;

public class Work {
	public static void main(String[] args) {

		Scanner scanner=new Scanner(System.in);

		System.out.println("输入学生成绩");
		double time=scanner.nextDouble();

//性别男女为文字,此处定义输入字符串
		System.out.println("输入学生性别");
		String sex=scanner.next();
		
		if(time<10) {
			if(sex.equals("男")) {
				System.out.println("恭喜,进入男子决赛组!");
			}else {
				System.out.println("恭喜,进入女子决赛组!");
			}
			
		}else {
			System.out.println("很遗憾,学生淘汰!");
		}
  }
}

4.购物计算

import java.util.Scanner;

public class Work {
	public static void main(String[] args) {
	
		Scanner scanner=new Scanner(System.in);

		System.out.println("顾客是否会员");
		String member=scanner.next();

		System.out.println("请输入应付金额");
		double price=scanner.nextDouble();
		double pay;//定义实际支付的变量,储存相应数据

		if(member.equals("yes")) {
			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("实际付款="+pay);	
  }
}

5.求三个数的最大值(使用三目运算符)

import java.util.Scanner;

public class Work08 {
	public static void main(String[] args) {

		Scanner scanner=new Scanner(System.in);  

		System.out.println("输入第一个数");
		int a=scanner.nextInt();

		System.out.println("输入第二个数");
		int b=scanner.nextInt();

		System.out.println("输入第三个数");
		int c=scanner.nextInt();

//判断(a>b)?(a):(b)会得到两个之间的最大值,然后拿来和c比较大小
//(a>b)?(a):(b)>C作为表达式,((a>b)?(a):(b))和c为表达式的出的值
		
		int date2=(((a>b)?(a):(b))>c)?((a>b)?(a):(b)):(c);

//先判断(a>c)?(a):(c)和(b>c)?(b):(c),然后判断a和b的大小
//(a>b)作为表达式+?+(a>c)?(a):(c) :(b>c)?(b):(c)

		int date3=(a>b)?(a>c)?(a):(c):(b>c)?(b):(c);
		
        System.out.println("最大值2="+date2);	
		System.out.println("最大值3="+date3);	
  }
}

6.输入三个数,然后按从小到大的顺序输出

import java.util.Scanner;

public class Work {
	public static void main(String[] args) {
	
		Scanner scanner=new Scanner(System.in);

		System.out.println("输入第一个数");
		int a=scanner.nextInt();

		System.out.println("输入第二个数");
		int b=scanner.nextInt();

		System.out.println("输入第三个数");
		int c=scanner.nextInt();
		
		if(a>b) {
			int x;
			x=a;
			a=b;
			b=x;
		}
		if(a>c) {
			int y;
			y=a;
			a=c;
			c=y;
		}
		if(b>c) {
			int z;
			z=b;
			b=c;
			c=z;
		}
		
		System.out.println("最小值="+a);
		System.out.println("中间值="+b);
		System.out.println("最大值="+c);
  }
}

顺序结构就是按程序执行,本章主要为选择结构,基本运用必须掌握,适当延伸回顾。

 ————勤劳解决温饱,知识改变命运,继续坚持!!!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值