循环结构程序设计
使用Java语言编写程序:写一个菜单程序,菜单内容自定义,程序可重复选择不同的菜单,直到选择了“退出菜单”的功能才退出运行。
该回答引用chatgpt:
package com.test;
import java.util.Scanner;
public class MenuProgram {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
int choice;
do {
displayMenu();
choice = scanner.nextInt();
handleMenuChoice(choice);
} while (choice != 4); // 4 代表退出菜单的选项
System.out.println("程序已退出。");
}
public static void displayMenu() {
System.out.println("===== 菜单 =====");
System.out.println("1. 选项一");
System.out.println("2. 选项二");
System.out.println("3. 选项三");
System.out.println("4. 退出菜单");
System.out.println("请输入您的选择:");
}
public static void handleMenuChoice(int choice) {
switch (choice) {
case 1:
System.out.println("您选择了选项一。");
// 执行选项一的功能
break;
case 2:
System.out.println("您选择了选项二。");
// 执行选项二的功能
break;
case 3:
System.out.println("您选择了选项三。");
// 执行选项三的功能
break;
case 4:
System.out.println("正在退出菜单...");
break;
default:
System.out.println("无效的选择,请重新输入。");
}
System.out.println();
}
}
import java.util.HashMap;
import java.util.Map;
/**
* 算法:判斷快樂數
* 例如:7,如果从7开始将二次方之后的数字进行分解,再进行二次方相加,最后得到1,那就是快乐数
* 7² + 0² = 49
* 4² + 9² = 97
* 9² + 7² = 130
* 1² + 3² + 0² = 10
* 1² + 0² = 1
*/
public class HappyNumbs {
/**
* 默認獲取100以内的快樂數
*/
private static final int N = 100;
/**
* 判斷是否是快樂數
* @param point
* @return
*/
private static boolean isHappy(final int point0, int point, Map<Integer,Object> $pointMap) {
String $point = String.valueOf(point);
int k = 0;
String expression = "";
for(int i=0; i<$point.length();i++) {
String $$point = String.valueOf($point.charAt(i));
k += (int) Math.pow(Double.parseDouble($$point), 2);
expression += $$point + "^2 ";
if(i < $point.length()-1) {
expression += " + ";
}
}
expression += " = " + k;
System.out.println(expression);
if(k == 1) {
System.out.println("快樂數:k=" + point0);
return true;
}
if($pointMap.containsKey(k)) {
System.out.println("k=" + point0 + "不是快樂數字,循環節點:p=" + k);
return false;
}
$pointMap.put(k, 0);
return isHappy(point0, k, $pointMap);
}
public static void main(String[] args) {
for(int i=1;i<=N;i++) {
isHappy(i,i,new HashMap<Integer,Object>());
}
}
}
首先我们需要定义菜单内容和功能,然后在循环中输出菜单,并通过Scanner获取用户输入的选项,然后根据选项调用相应的功能,直到用户选择退出菜单。
示例代码如下:
import java.util.Scanner;
public class MenuProgram {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
String menu = "1. 功能1\n2. 功能2\n3. 退出菜单";
int choice;
do {
System.out.println(menu);
System.out.print("请输入选项:");
choice = scanner.nextInt();
switch (choice) {
case 1:
func1();
break;
case 2:
func2();
break;
case 3:
System.out.println("已退出菜单");
break;
default:
System.out.println("无效的选项,请重新选择");
}
} while (choice != 3);
}
public static void func1() {
System.out.println("执行功能1");
}
public static void func2() {
System.out.println("执行功能2");
}
}
以上示例中,我们定义了一个简单的菜单,包括两个功能和一个退出选项,通过do-while循环持续输出菜单并获取用户选择的选项,然后通过switch语句选择对应的功能进行执行。在示例代码中,func1()和func2()分别代表两个功能,可根据需求进行修改。
需要注意的是,示例代码中使用了Scanner类来获取用户输入,如果输入的数据类型不是整数则会报错,可根据需求使用其他方法获取输入。另外,使用Scanner类获取输入时需要注意资源关闭问题,可以使用try-with-resources语句进行处理。