本文收集整理关于请输入星期几的第一个字母来判断的相关议题,使用内容导航快速到达。
内容导航:
Q1:用 Java 请输入星期几的第一个字母来判断一下是星期几,如果第一个字母一样,则继续 判断第二个字母。
publicstaticvoidmain(String[]args){
Scanners=newScanner(System.in);
Stringresult="unknown";
StringstrRead="";
while(true){
System.out.println("pleaseinput:");
Stringinput=strRead+s.next().toUpperCase().trim();
if(input.startsWith("M")){
result="Monday";break;
}elseif(input.startsWith("W")){
result="Wednesday";break;
}elseif(input.startsWith("F")){
result="Friday";break;
}elseif(input.startsWith("TU")){
result="Tuesday";break;
}elseif(input.startsWith("TH")){
result="Thurday";break;
}elseif(input.startsWith("SA")){
result="Saturday";break;
}elseif(input.startsWith("SU")){
result="Sunday";break;
}elseif(input.startsWith("T")input.startsWith("S")){
strRead+=input;
continue;
}else
break;
}
System.out.println(result);
s.close();
}
Q2:请输入星期几的第一个字母来判断一下是星期几,如果第一个字母一样,则继续判断第二个字母。写出具体步骤
#include
int main()
{
char a;
printf("请输入第一个字母\n");
scanf("%c",&a);
fflush(stdin);
switch(a)
{
case m:case M:printf("星期一");break;
case t:case T:
{
printf("请输入第二个字母\n");
scanf("%c",&a);
switch(a)
{
case u:case U:printf("星期二");break;
case h:case H:printf("星期四");break;
}
break;
}
case w:case W:printf("星期三");break;
case f:case F:printf("星期五");break;
case s:case S:
{
printf("请输入第二个字母\n");
scanf("%c",&a);
switch(a)
{
case u:case U:printf("星期日");break;
case a:case A:printf("星期六");break;
}
break;
}
}
return 0;
}
W:ww.yijItAO.cOM
Q3:请输入星期几的第一个字母来判断一下是星期几,如果第一个字母一样,则继续判断第二个字母。
给你一个改动最少的方案:
#include
main()
{
char letter;
printf("please input the first letter of someday\n");
while((letter=getchar())!=y)
{
fflush(stdin);//这儿加一个强制键盘缓冲区清空处理,用以清空while判断里输入时最后所带的回车
switch (letter)
{
case s:printf("please input second letter:\n");
if ((letter=getchar())==a)printf("saturday\n");
else if (letter==u)printf("sunday\n"); //这儿直接判断letter,而不需要再判断letter=getchar()
else printf("Data error\n");break;
case f:printf("friday\n");break;
case m:printf("monday\n");break;
case t:printf("please input second letter:\n");
if ((letter=getchar())==u)printf("tuesday\n");
else if (letter==h)printf("thursday\n"); //这儿直接判断letter,而不需要再判断letter=getchar()
else printf("Data error\n");break;
case w:printf("wednesday\n");break;
default:printf("error\n");
}
fflush(stdin);//这儿加一个强制键盘缓冲区清空处理,用以清空case语句里输入时最后所带的回车
}
}
上面各位说的关于强制键盘缓冲区清空处理的都是对的,主要就是要注意输入数值时,回车的影响。
但是上面各位的改造都过于复杂,主要是对于if/else语句的执行范围认识有误,
对于
if ((letter=getchar())==a)printf("saturday\n");
这个语句,即使当前输入的第2个字符不是a,这里if判断里的letter=getchar()也会执行的,只是==a判断为假,所以if分支不执行。
所以其实用户输入的第2个字符已经被接收了,所以当前letter中已经存放了用户输入的第2个字符。
因此,后面的else if需要直接判断letter,而不需要再判断letter=getchar(),这样就多接收了一个字符了
Q4:java 题目:请输入星期几的第一个字母来判断一下是星期几,如果第一个字母一样,则继续判断第二个字母
String str="Monday";
char ch=str.charAt(0);
char c =str.charAt(1);
switch (ch) {
case M:
System.out.println("星期一");
break;
case T:
switch (c) {
case u:
System.out.println("星期二");
break;
case h:
System.out.println("星期五");
break;
}
case W:
System.out.println("星期三");
break;
case F:
System.out.println("星期四");
break;
case S:
switch (c) {
case a:
System.out.println("星期六");
break;
case u:
System.out.println("星期天");
break;
}
}
额,排版不好怪不得我.要怪就怪百度吧...
str的获取不用我写了吧?我就随手给了一个值。
Www.YijItao.CO;M
Q5:9.请输入星期几的第一个字母来判断一下是星期几,如果第一个字母一样,则继续 判断第二个字母。 java
importjava.util.Scanner;
/**
*查找星期
*
*
*
*@authorcs121102018年3月7日下午7:05:45、*
*/
publicclassWeekSeeker{
/**
*星期字符串数组
*/
privatestaticfinalString[]WEEK={"Monday","Tuesday","Wednesday","Thursday","Friday","Saturday",
"Sunday"};
/**
*匹配天数
*/
privatestaticStringtargetDay="";
publicstaticvoidmain(String[]args){
Scannerinput=newScanner(System.in);
StringBuilderuserSearch=newStringBuilder();
while(true){
System.out.print("Input:");
Stringline=input.nextLine();
userSearch.append(line);
if(isUnique(userSearch.toString())){
System.out.println(targetDay);
break;
}
}
input.close();
}
/**
*判断是否获取到唯一一天
*
*@paramstr
*输入字符串
*@returnboolean
*/
privatestaticbooleanisUnique(Stringstr){
intnum=0;
for(intindex=0,len=WEEK.length;index
if(day.toUpperCase().startsWith(str.toUpperCase())){
num++;
targetDay=day;
}
}
returnnum==1;
}
}
测试结果
Input:SwWw.YIj∽itao.COm
Q6:C语言编程题:‘输入星期几的第一个字母来判断一下是星期几,如果第一个字母一样,则继续判断第二个字母’。求高手编程。
#include
int main()
{
char ch;
printf("输入第一个字符:");
do
{
fflush(stdin);
scanf("%c",&ch);
if(ch==Mch==m)
{
printf("是星期一\n");
break;
}
else if(ch==Wch==w)
{
printf("是星期三\n");
break;
}
else if(ch==Fch==f)
{
printf("是星期五\n");
break;
}
else if(ch==Tch==t)
{
fflush(stdin);
printf("输入第二个字符:");
scanf("%c",&ch);
if(ch==Uch==u)
{
printf("是星期二\n");
break;
}
else if(ch==Hch==h)
{
printf("是星期四\n");
break;
}
else
{
printf("输入错误\n");
}
}
else if(ch==Sch==s)
{
fflush(stdin);
printf("输入第二个字符:");
scanf("%c",&ch);
if(ch==Ach==a)
{
printf("是星期六\n");
break;
}
else if(ch==Uch==u)
{
printf("是星期日\n");
break;
}
else
{
printf("输入错误\n");
}
}
else
{
printf("输入错误\n");
}
} while (1);
}wWw.yIjITAO。.Com
Q7:求C语言题目:请输入星期几的第一个字母来判断一下是星期几,如果第一个字母一样,则继续判断第二个字母
用scanf时当你输入一个字符过后再输入回车,下次再用scanf时,上次输入的回车会直接被当作字符输入,所以你不能进行第二次输入。像楼上所说,在scanf之后加上fflush(stdin)就可以清空缓冲区了~