问题描述
编写一个Java程序,用户输入一个字符后,程序判断该字符是不是韵母。当用户输入0时退出程序。
问题分析:
仔细思考这道题目,会发现需要做两件事:
1) 重复接收用户输入的字符;
2) 接收字母后,对字母进行判断。
接收字符很显然要用循环来处理,但由于并不知道用户什么时候输入0,所以这个循环并不能直接规定终点,而是应该在循环体内经过判断,来决定是否终循环。伪代码示意如下:
进入循环
接收字符
如果字符为0,退出循环
验证是否为韵母
程序结束
验证过程中,由于韵母有5个,所以可以采用switch结构来筛选,当然也可以采用if-else结构来判断。
import java.util.Scanner;
public class Test03 {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.println("请输入一个字符:");
while (true) {
String str = sc.next();
char ch = str.charAt(0);
if (ch == '0')
break;
char[] yunmuList = { 'a', 'e', 'i', 'o', 'u', 'A', 'E', 'I', 'O', 'U' };
for (int i = 0; i < yunmuList.length; i++) {
if (ch == yunmuList[i]) {
System.out.println("这个字符是韵母");
break;
}
if (i == yunmuList.length - 1) {
System.out.println("这个字符不是韵母");
}
}
System.out.println("请继续输入(输入0结束输入):");
}
}
}