是否可以在switch语句中嵌套if语句

liurpg 2013-01-27 06:23:26
本人是新手,刚学习JAVA,在一次简单编程中想知道是否可以在switch语句中嵌套if语句。
以下是一个简单的公交站点查询小程序,我的想法是先输入自己的起始地和目的地,然后程序自动给出经过的站点,在编程中遇见了一些小问题,switch语句判定first的模块中我能否加上if语句对last进行判定。
程序如下:
import java.lang.*;
import javax.swing.*;

public class j03030508 {
public static void main(String[] args){
String first=JOptionPane.showInputDialog(null,"去请输入你的起始地:");
String last=JOptionPane.showInputDialog(null,"去请输入你的目的地:");
String passstat="";
switch (first){
case "棠下":
passstat="棠下->";
System.out.println("棠下开车");
if(last=="棠下")
break;
case "学院":
passstat+="学院->";
System.out.println("学院到了");
if(last=="学院")
break;
case "上社":
passstat+= "上社->";
System.out.println("上社到了");
if(last=="上社")
break;
case "华景新城":
passstat+= "华景新城->";
System.out.println("华景新城到了");
if(last=="华景新城")
break;
case "师大暨大":
passstat+="师大暨大->";
System.out.println("师大暨大到了");
if(last=="师大暨大")
break;
case "石牌桥":
passstat+="石牌桥";
System.out.println("终点站石牌桥");
if(last=="石牌桥")
break;

}
System.out.println("你的旅程是:\n"+passstat);
}

以上程序在运行中得不出我想要的结果,想知道我的思路是否正确,sitch语句中能否这样嵌套if语句?请高手们指点!谢谢!
...全文
12486 15 打赏 收藏 转发到动态 举报
写回复
用AI写文章
15 条回复
切换为时间正序
请发表友善的回复…
发表回复
小毛球 2013-02-01
  • 打赏
  • 举报
回复
引用 13 楼 liurpg 的回复:
引用 10 楼 lyh_974056553 的回复:Java code?123456789101112public String getLast(String last){ String res = ""; if(last!=""){ if(last.equals("华景新城")){ res = "华景新城"; ……
嗯,大概就是这个意思了, 逻辑方面的问题,LZ还是自己多看看程序里面有没有问题,理顺了就好了…… ps:字符串比较,最好还是用equals,还有比较之前最好先判空。。。
liurpg 2013-02-01
  • 打赏
  • 举报
回复
引用 10 楼 lyh_974056553 的回复:
Java code?123456789101112public String getLast(String last){ String res = ""; if(last!=""){ if(last.equals("华景新城")){ res = "华景新城"; }else if(last.equals("师大暨……
谢谢你了,我看见你的程序里面字符串对比调用的是equals方法,尝试了一下,发现只要把“==”改成equals方法就能得到我想要的结果了! 至于你说的那个方法,你的if语句的意思就是只要我的last的取值是那几个站点,把last的值赋值给rec,然后返回rec的值,是这样吗? 这样的话不就等于是 public String getLast(String last){ String rec=last; return rec; }
Planet X 2013-02-01
  • 打赏
  • 举报
回复
报错: Exception in thread "main" java.lang.Error: Unresolved compilation problem: Cannot switch on a value of type String. Only int values or enum constants are permitted at test.Test.main(Test.java:10) 第10行是:switch (first){ 。。。 }
猪公公 2013-01-31
  • 打赏
  • 举报
回复
LZ last=="石牌桥" 字符串用 == 来比较要是能搞出你想要的结果就怪了。
Mourinho 2013-01-31
  • 打赏
  • 举报
回复
if(last=="棠下")
小毛球 2013-01-30
  • 打赏
  • 举报
回复

public String getLast(String last){
    String res = "";
    if(last!=""){
        if(last.equals("华景新城")){
            res = "华景新城";
        }else if(last.equals("师大暨大")){
            res = "师大暨大";
        }
        ……//此次自己补全
    }
    return res;
}
在每一个case下面调用一下这个方法
liurpg 2013-01-29
  • 打赏
  • 举报
回复
引用 8 楼 lyh_974056553 的回复:
LZ你的switch (first) 条件是first,是不可能在last输入为“师大暨大”跳出的。。。 这种逻辑问题,LZ可以调试来看的。。。
请问,我要怎么做,才能得到我想要的结果,也就是在last为师大暨大的时候跳出来?谢谢
Lena-Yang 2013-01-28
  • 打赏
  • 举报
回复
里面可以放任何代码
小毛球 2013-01-28
  • 打赏
  • 举报
回复
LZ你的switch (first) 条件是first,是不可能在last输入为“师大暨大”跳出的。。。 这种逻辑问题,LZ可以调试来看的。。。
liurpg 2013-01-28
  • 打赏
  • 举报
回复
可是这个程序得不出我想要的查询结果,比如说我在first输入为棠下,last输入为师大暨大,可是程序不会在case 师大暨大 这里跳出来,似乎if语句没有起作用,是程序本身有问题吗?敬请各位指点。
Jacky-止涯 2013-01-27
  • 打赏
  • 举报
回复 1
引用 楼主 liurpg 的回复:
本人是新手,刚学习JAVA,在一次简单编程中想知道是否可以在switch语句中嵌套if语句。 以下是一个简单的公交站点查询小程序,我的想法是先输入自己的起始地和目的地,然后程序自动给出经过的站点,在编程中遇见了一些小问题,switch语句判定first的模块中我能否加上if语句对last进行判定。 程序如下: import java.lang.*; import ……
switch里面是支持if语句的,每个case就相当于一个{},所以里面可以随意放东西。
失落夏天 2013-01-27
  • 打赏
  • 举报
回复
引用 3 楼 zlss_17 的回复:
引用 2 楼 AA5279AA 的回复: 引用 楼主 liurpg 的回复:本人是新手,刚学习JAVA,在一次简单编程中想知道是否可以在switch语句中嵌套if语句。 以下是一个简单的公交站点查询小程序,我的想法是先输入自己的起始地和目的地,然后程序自动给出经过的站点,在编程中遇见了一些小问题,switch语句判定first的模块中我能否加上if语句对last进行判定。 程序如下: im……
嗯,搜了下,确实支持了。。 但是还是建议不要使用,毕竟还没普及,涉及到兼容性的问题。。。
zlss_17 2013-01-27
  • 打赏
  • 举报
回复
引用 2 楼 AA5279AA 的回复:
引用 楼主 liurpg 的回复:本人是新手,刚学习JAVA,在一次简单编程中想知道是否可以在switch语句中嵌套if语句。 以下是一个简单的公交站点查询小程序,我的想法是先输入自己的起始地和目的地,然后程序自动给出经过的站点,在编程中遇见了一些小问题,switch语句判定first的模块中我能否加上if语句对last进行判定。 程序如下: import java……
jdk7支持String了
失落夏天 2013-01-27
  • 打赏
  • 举报
回复
引用 楼主 liurpg 的回复:
本人是新手,刚学习JAVA,在一次简单编程中想知道是否可以在switch语句中嵌套if语句。 以下是一个简单的公交站点查询小程序,我的想法是先输入自己的起始地和目的地,然后程序自动给出经过的站点,在编程中遇见了一些小问题,switch语句判定first的模块中我能否加上if语句对last进行判定。 程序如下: import java.lang.*; import javax.swing.*……
switch语句中应该是可以嵌套if语句的 但是switch中应该是不允许匹配String类型的。。 char,int,byte,short好像只有这些是允许的。
rockets311 2013-01-27
  • 打赏
  • 举报
回复
自己试试就晓得了嘛!

50,528

社区成员

发帖
与我相关
我的任务
社区描述
Java相关技术讨论
javaspring bootspring cloud 技术论坛(原bbs)
社区管理员
  • Java相关社区
  • 小虚竹
  • 谙忆
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧