如何解决我想让Java从一个输入整数计数到另一个,在工作日打印
因此,首先,我对Java完全陌生,我知道对大多数人来说这可能真的很容易。但是现在我坚持做运动。我几乎疯狂地搜索过Google,但是找不到有关此特定问题的任何有用的提示。那或者我真的不知道要搜索什么。
我有一段看起来像这样的代码:
导入java.util.Scanner;
公共课周{
public static void main(String [] args){ 扫描仪输入=新的Scanner(System.in);
System.out.println("Type a number: ");
int day = input.nextInt();
if (day == 1) {
System.out.println("Monday ");
}
if (day == 2) {
System.out.println("Tuesday ");
}
if (day == 3) {
System.out.println("Wednesday ");
}
if (day == 4) {
System.out.println("Thursday ");
}
if (day == 5) {
System.out.println("Friday ");
}
if (day == 6) {
System.out.println("Saturday ");
}
if (day == 7) {
System.out.println("Sunday");
}
} }
您可能会看到,该程序会提示用户键入一个数字,如果该数字在1到7之间,则该程序将在相应的星期几回答。但是,我现在想做的是修改代码以启动计数器或循环等。我想让它从我的输入号码到指定的间隔数+1。假设我输入2,程序将打印:星期二,星期三,星期四,星期五,然后使其停止。
我只是真正地浸入了我的脚趾,虽然,如果是陈述等,但我知道某处有钥匙。在游戏中,我只能成功使程序打印两次5次,或者让我键入数字以表示无穷大。
任何帮助将不胜感激!
解决方法
public class Week {
public static void main(String[] args) { Scanner input = new Scanner(System.in);
System.out.println("Type a number: ");
int day = input.nextInt();
System.out.println("Type a stop number: ");
int stopDay = input.nextInt();
for (int i = day; i <= stopDay; i++) { // if the stopday should be printed,then use '<=','<' otherwise
printWeekDay(i);
}
}
private static void printWeekDay(int day) {
if (day == 1) {
System.out.println("Monday ");
}
if (day == 2) {
System.out.println("Tuesday ");
}
if (day == 3) {
System.out.println("Wednesday ");
}
if (day == 4) {
System.out.println("Thursday ");
}
if (day == 5) {
System.out.println("Friday ");
}
if (day == 6) {
System.out.println("Saturday ");
}
if (day == 7) {
System.out.println("Sunday");
}
}
}
,
您可以只创建一个DAYS[]
数组,并从该特定索引到末尾遍历该数组。
String DAYS[] = {"Monday","Tuesday","Wednesday","Thursday","Friday","Saturday","Sunday"};
System.out.println("Type a number: ");
int day = input.nextInt();
if(day >= 1 && day <= 7) {
for(int i = day - 1; i < DAYS.length; i++) {
System.out.println(DAYS[i]);
}
}
else
System.out.println("Enter a valid number");
如果您想通过输入停止索引来停止,逻辑将是相同的。只需将DAYS.length
循环中的for
替换为所需的stop index
我将使用switch-case进行操作,在该程序中,当我希望程序打印特定的日期时,我将使用break
,它会在执行匹配的case
之后中断切换条件块。如果在某种情况下未使用break
,则执行将遍历其余情况,直到找到break
或该块结束为止。
为了继续重复执行此操作,我将使用一个无限循环(while(true) { }
),可以根据业务逻辑使用break
语句将其断开。
请注意,我还使用了Integer.parseInt(input.nextLine())
而不是input.nextint()
来避免描述的问题here。
演示:
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
System.out.println("+=+=+ Menu +=+=+");
System.out.println("A. Show a specific day");
System.out.println("B. Show all days starting from the specific day");
System.out.println("C. Exit");
String choice;
while (true) {
System.out.print("Enter your choice: ");
choice = input.nextLine().toUpperCase();
if ("C".equals(choice)) {
System.out.println("Good bye!");
break;
}
System.out.print("Type a number: ");
int day = Integer.parseInt(input.nextLine());
if ("A".equals(choice)) {
switch (day) {
case 1:
System.out.println("Monday ");
break;
case 2:
System.out.println("Tuesday ");
break;
case 3:
System.out.println("Wednesday ");
break;
case 4:
System.out.println("Thursday ");
break;
case 5:
System.out.println("Friday ");
break;
case 6:
System.out.println("Saturday ");
break;
case 7:
System.out.println("Sunday");
break;
}
} else if ("B".equals(choice)) {
switch (day) {
case 1:
System.out.println("Monday ");
case 2:
System.out.println("Tuesday ");
case 3:
System.out.println("Wednesday ");
case 4:
System.out.println("Thursday ");
case 5:
System.out.println("Friday ");
case 6:
System.out.println("Saturday ");
case 7:
System.out.println("Sunday");
}
}
}
}
}
示例运行:
+=+=+ Menu +=+=+
A. Show a specific day
B. Show all days starting from the specific day
C. Exit
Enter your choice: A
Type a number: 4
Thursday
Enter your choice: B
Type a number: 4
Thursday
Friday
Saturday
Sunday
Enter your choice: C
Good bye!
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。