Java面试题:判断与流程结构

判断语句

判断一个年份是否为闰年 ★能被4整除,但不能被100整除或能被400整除

Scanner input = new Scanner(System.in);
System.out.println("Please input a year:");
int year = input.nextInt();
if(year%4==0 && year%100!=0||year%400==0){
	System.out.println("This is a LeapYear");
    }else{
	System.out.println("This is not a LeapYear");
    }

判断一个整数是否是水仙花数

所谓水仙花数是指一个3位数,其各个位上数字立方和等于其本身。例如: 153 = 1*1*1 + 3*3*3 + 5*5*5   ★

Scanner input = new Scanner(System.in);
System.out.println("请输入一个三位数字:");
int num = input.nextInt();
int ge = num%10;//个
int shi = num/10%10;//十
int bai = num/100;//百
if(num>=100&&num<=999){
	//方式一
	/*
	if( num == ge*ge*ge+shi*shi*shi+bai*bai*bai){//水仙花
		System.out.println("是");
	}else{
		System.out.println("不是");
    	}*/
	//方式二:
    	if( num == Math.pow(ge,3)+Math.pow(shi,3)+Math.pow(bai,3)){//水仙花
		System.out.println("是");
	}else{
		System.out.println("不是");
    	}
    }else{
	System.out.println("不是一个有效的三位数");    		   	
}

保存用户名和密码,判断用户名是否为“张三”,密码是否为1234,如果是,提示登录成功,否则提示登录失败 ★

== 可以用于比较两个基本类型或两个引用类型
如果比较基本类型,判断的是值(内容)是否相等。要求:两个操作数的类型一致或兼容。
		示例: 100==100.0  true    'a'==97  true
如果比较引用类型,判断的是地址是否相等  (所以一般来讲,不用它去判断),可以使用equals方法去判断内容
	示例:string1.equals(string2) 结果为:boolean类型;

代码:

Scanner input = new Scanner(System.in);
System.out.println("请输入用户名:");
String name = input.next();
System.out.println("请输入密码:");
String pwd = input.next();
//if(name==""&&pwd=="1234"){//此处输出结果为false
if(name.equals("张三")&&pwd.equals("1234")){
	//equals判断引用类型是否相等
	System.out.println("登录成功");
}else{
	System.out.println("登录失败");
}

编写程序,根据输入的月份和年份,求出该月的天数(1-12)【switch题目】 ★

1/3/5/7/8/10/12  ————31
2——29/28
其他——30
输入年、月、日,求该天为该年的第几天
switch循环

代码

Scanner input = new Scanner(System.in);
System.out.print("请输入年份:");
int year = input.nextInt();
System.out.print("请输入月份:");
int month = input.nextInt();
switch(month){
	case 1:
	case 3:
	case 5:
	case 7:
	case 8:
	case 10:
	case 12:System.out.println(31);break;
	case 2:
		if(year%4==0 && year%100!=0||year%400==0){
			System.out.println("This is a LeapYear");
		}else{
			System.out.println("This is not a LeapYear");
		}
	break;
	default:
		System.out.println(30);break;
	}

在JAVA中,以下程序的输出结果为()。

boolean b1=false,b2=false;
		if((b1=2>3) && (b2=5>0)){
			System.out.print("(b1=2>3) && (b2=5>0)为真");
		}
		System.out.print("b1="+b1+";b2="+b2);

答案:

false false

在java中,运行下面的代码输出的结果是()。

int x = 1;
int y = 2;
x += y+y;x=x+(y+y);x=5
if(x < 5 && y <=4){
	System.out.println("1");
}else if(x >= 5 || y>4){
	System.out.println("2");
}else{
	System.out.println("error");
}

答案:

2

输出所有的水仙花数,所谓水仙花数是指一个3 位数,其各个位上数字立方和等于其本身。 例如: 153 = 111 + 333 + 555

for(int i=100;i<=999;i++){
//循环操作
int ge = i%10;
int shi = i/10%10;
int bai = i/100;
//①先判断水仙花数是否满足
if( i == Math.pow(ge,3)+Math.pow(shi,3)+Math.pow(bai,3))
	//②打印
	System.out.println(i);
}

循环语句

打印3个班,每个班5名同学的平均分【嵌套循环】

Scanner input = new Scanner(System.in);
double result = 0;//所有的成绩和
for(int i=1;i<=3;i++){//i:班级数
double sum = 0;//一个班的成绩和
for(int j=1;j<=5;j++){//j:每个班级的学生数
	//循环操作
	//1.提示输入
	System.out.print("请输入第"+j+"名同学成绩:");
	//2.输入
	double score = input.nextDouble();
	//3.求和
	sum+=score;
	result+=score;
}
//result+=sum;
System.out.println("第"+i+"个班的平均分:"+(sum/5));
}
System.out.println(result/15);

打印图形:
*
**
***

	for(int i=1;i<=10;i++){//i:控制行数
	//①打印*
	for(int j=1;j<=i;j++){//j:控制*的个数
		System.out.print("*");//控制打印内容
	}
	//②换行
	System.out.println();
	}

打印99乘法表

for(int i=1;i<=9;i++){//i:控制行数
//①打印*
for(int j=1;j<=i;j++){//j:控制*的个数
	System.out.print(i+"*"+j+"="+i*j+" ");//控制打印内容
}
//②换行
System.out.println();

}
案例:输入10名学生的年龄,统计>18岁的人数

请输入第x名学生的年龄:xx    判断年龄>18 ,如果是,则统计上
请输入第x名学生的年龄:xx
请输入第x名学生的年龄:xx
请输入第x名学生的年龄:xx
。。。
请输入第x名学生的年龄:xx

代码

Scanner input = new Scanner(System.in);
int count = 0;//统计个数
int i=1;
while(i<=10){
	//循环操作
	//1.提示打印
	System.out.print("请输入第"+i+"名学生的年龄:");
	//2.接收键盘输入
	int age = input.nextInt();
	//3.判断
	if(age>18){
		//4.统计
		count++;
	}
	i++;
}
System.out.println("一共有"+count+"个");

打印1-100之间13的倍数,使用continue语句

for(int i=1;i<=100;i++){
if(i%13!=0)
	continue;
System.out.println(i);
}

从键盘读入个数不确定的整数,并判断读入的正数和负数的个数,输入为0时结束程序。

Scanner input  = new Scanner(System.in);
int countPositive = 0;//正数的个数
int countNegative = 0;//负数的个数
while(true){
	//循环操作
	System.out.print("请输入:");
	int num = input.nextInt();
	if(num==0)
		break;
	if(num>0){
		countPositive++;
		continue;
	}
	countNegative++;
}
System.out.println("正数的个数:"+countPositive);
System.out.println("负数的个数:"+countNegative);

输入年月日,判断该日是当年的第几天

Scanner input  = new Scanner(System.in);
System.out.print("please input year:");
int year= input.nextInt();
System.out.print("please input month:");
int month= input.nextInt();
System.out.print("please input day:");
int day= input.nextInt();
/*
int sum=0;//保存天数和
for(int i=1;i<month;i++){//i:代表每一个月
	switch(i){
		case 1:
		case 3:
		case 5:
		case 7:
		case 8:
		case 10:
		case 12:sum+=31;break;
		case 2:
			if(year%4==0&&year%100!=0||year%400==0){
				sum+=29;
			}else{
				sum+=28;
			}
			break;
		default:
			sum+=30;break;
	}
}
System.out.println("这是该年的第"+(sum+day)+"天");
*/
int sum=0;//保存天数和
switch(month-1){
	case 12:sum+=31;
	case 11:sum+=30;
	case 10:sum+=31;
	case 9:sum+=30;
	case 8:sum+=31;
	case 7:sum+=31;
	case 6:sum+=30;
	case 5:sum+=31;
	case 4:sum+=30;
	case 3:sum+=31;
	case 2:
			if(year%4==0&&year%100!=0||year%400==0){
				sum+=29;
			}else{
				sum+=28;
			}
	case 1:sum+=31;
}
System.out.println(sum+day);

随机猜数游戏

Scanner input  = new Scanner(System.in);
int rand = (int)(Math.random()*100+1);//随机数
System.out.println(rand);
boolean flag = false;
int i=1;
for(;i<=10;i++){//i:猜的次数
	System.out.print("请猜:");
	int num = input.nextInt();
	if(num==rand){
		if(i==1){
			System.out.println("你是个天才");
		}else if(i<=3){
			System.out.println("你很聪明,赶上我了");

		}else if(i<=9){
			System.out.println("一般般");

		}else{
			System.out.println("可算猜对了");
		}
		flag = true;
		break;
	}else if(num>rand){
		System.out.println("再小点");
	}else{
		System.out.println("再大点");
	}
}
if(!flag){//一次没猜对
	System.out.println("你太笨了!");
}
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值