java代码求助,感觉两个if功能重复,如何优化,三目我试过编译错误
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java代码求助,感觉两个if功能重复,如何优化,三目我试过编译错误相关的知识,希望对你有一定的参考价值。
package src;
/*需求
* 1-先输入年,在输入月
* 2-计算一年又多少天
* 3-在输入年的时候或输入月的时候只要输入一次setup就退出*/
import java.util.ArrayList;
import java.util.List;
import java.util.Scanner;
public class 计算一年天数
public static void main(String[]args)
Scanner shuru =new Scanner(System.in);
for(;;)
System.out.print("输入年");
String b =shuru.next();
if(b.equals("setup"))//
break;
System.out.print("输入月");
String b1 =shuru.next();
if(b1.equals("setup"))//重复代码
break;
//强转类型.parse类型(要转的类名)
int a =Integer.parseInt(b);
//强转 类名.toString();
//String a1 =b1.toString();
int a1 =Integer.parseInt(b1);
//判断年
boolean nian =(a%4==0&&a%100!=0)||a%400==0;
//判断31天的月份
boolean danyue =a1==1||a1==3||a1==5||a1==7||a1==8||a1==10||a1==12;
//判断不是31天的月份
boolean shuangyue =a1==4||a1==6||a1==9||a1==11;
//计算天天数
int daye=danyue?30:(shuangyue?31:(nian?29:29));
System.out.println(a+"年"+a1+"月"+daye+"天");
但是这个switch格式不是不接受数字和char以外的数据么。还有我这个接收按键shuru,写到switch(表达式)里的话是报错。如果把b或b1写进去,switch(表达式)这如何判断?
追答哦,这样啊,应该是语法有问题,你类名最好用英文,虽说用中文可以,但是看起来怪怪的,那段//判断年
boolean nian =(a%4==0&&a%100!=0)||a%400==0;
//判断31天的月份
boolean danyue =a1==1||a1==3||a1==5||a1==7||a1==8||a1==10||a1==12;
//判断不是31天的月份
boolean shuangyue =a1==4||a1==6||a1==9||a1==11;
完全不知道你写的什么,你就不能分开一行一行的写,这样写,太难看了。
用while循环吧,比因for循环好,如果一旦输入"setup"就判断,然后break跳出while循环。
这个不能用switch,我一开始没认真看,不好意思。
但是这个switch格式不是不接受数字和char以外的数据么。还有我这个接收按键shuru,写到switch(表达式)里的话是报错。如果把b或b1写进去,switch(表达式)这如何判断?
以上是关于java代码求助,感觉两个if功能重复,如何优化,三目我试过编译错误的主要内容,如果未能解决你的问题,请参考以下文章
Java 感觉在try语句中嵌套if语句不怎么美观,请问怎么优化
求助!pandas怎么实现vlookup功能,数据放在指定列里