黑马程序员技术交流社区

标题: 我的代码错在哪里? [打印本页]

作者: 马文浩    时间: 2012-5-12 10:01
标题: 我的代码错在哪里?
//根据用户定义的数值不同,打印出对应的月份
class Demo2         
{
public static void main(String [] sags)  
{
  int x=3;
  
  if(x==3);
  if(x==4);
  if(x==5);
   System.out.println(x + "月是春季");
  if(x==6);
  if(x==7);
  if(x==8);
   System.out.println(x + "月是夏季");
  if(x==9);        
  if(x==10);
  if(x==11);
   System.out.println(x+"月是秋季");
  if(x==12);
  if(x==1);
  if(x==2);
   System.out.println(x+"月是冬季");
  if(x>12 || x<1)
   System.out.println("该月份不存在");
}
}
/*
这道练习题我已经会了正确的解法。我上面的代码可以编译运行,但是解答不出来正确结果,输出的内容很是让我无语,朋友们帮我看看到底哪里出了问题。
*/

作者: 马文浩    时间: 2012-5-12 10:04
public static void main(String [] sags)   

main函数写错了,为什么这个程序还能继续运行呢?
作者: 小小企鹅    时间: 2012-5-12 10:13
本帖最后由 小小企鹅 于 2012-10-27 22:41 编辑

  if(x==3);
  if(x==4);
  if(x==5);
if语句后加;相当语句结束,不会继续执行了
class Demo2         
{
public static void main(String [] sags)  
{
  int x=3;
  
  if(x==3 || x==4 || x==5)
   System.out.println(x + "月是春季");
  if(x==6 || x==7 || x==8)
   System.out.println(x + "月是夏季");
  if(x==9 || x==10 || x==11)
   System.out.println(x+"月是秋季");
  if(x==12 || x==1 || x==2)
   System.out.println(x+"月是冬季");
  if(x>12 || x<1)
   System.out.println("该月份不存在");
}
}
作者: 黑马-王建雨    时间: 2012-5-12 10:25
class Demo2         
{
public static void main(String [] sags)  //这个数组名虽然可以这么写,但还是建议写成args。这是大家约定俗成的写法。
{
   int x=3;
   
   if(x==3);
   if(x==4);
   if(x==5);
    System.out.println(x + "月是春季");
  if(x==6);
   if(x==7);
   if(x==8);
    System.out.println(x + "月是夏季");
   if(x==9);        
   if(x==10);
   if(x==11);
    System.out.println(x+"月是秋季");
   if(x==12);
   if(x==1);
   if(x==2);//if后面写;后面的语句执行不到了。要细心哈。加油哦。
    System.out.println(x+"月是冬季");
  if(x>12 || x<1)
    System.out.println("该月份不存在");
}
}

作者: 王渠    时间: 2012-5-12 10:47
本帖最后由 王渠 于 2012-5-12 11:00 编辑
  1. import java.util.Scanner;

  2. public class Demo {
  3.                 public static void main(String[] args){
  4. Scanner input = new Scanner(System.in);\\帮你修改了,可以输入月份
  5. System.out.print("输入一个月份: ");
  6. int x = input.nextInt();
  7.          
  8.           if(x==3||x==4||x==5)
  9.            System.out.println(x + "月是春季");
  10.            else if(x==6||x==7||x==8)
  11.            System.out.println(x + "月是夏季");
  12.            else  if(x==9||x==10||x==11)
  13.            System.out.println(x+"月是秋季");
  14.            else if(x==12||x==1||x==2)
  15.            System.out.println(x+"月是冬季");
  16.            else
  17.            System.out.println("该月份不存在");
  18.         }
  19. }
复制代码
我就拿一个来说了
  1.    if(x==3);
  2.    if(x==4);
  3.    if(x==5);
  4.     System.out.println(x + "月是春季");\\不要每个if后面都加;,这样该判断就结束了,完全没有起到判断的作用
复制代码
每一个if后面都应该与有他对应的执行语句。上面三个既然是一个结果,你可以写入一个if语句中去
  1. if(x==3||x==4||x==5)
  2.     System.out.println(x + "月是春季");
复制代码

作者: 马文浩    时间: 2012-5-12 11:28
啷个里个郞 发表于 2012-5-12 10:25
class Demo2         
{
public static void main(String [] sags)  //这个数组名虽然可以这么写,但还是 ...

懂了懂了,谢谢啦。那个函数写错,确实是粗心了,至于那个if后的;的作用,你说了我才知道,现在回想一下是我看视频不细心,没留意老师写代码时候的格式,或者说留意是留意了,可那个;还是被我无意中给忽略了。

作者: 黑马-王建雨    时间: 2012-5-12 11:31
马文浩 发表于 2012-5-12 11:28
懂了懂了,谢谢啦。那个函数写错,确实是粗心了,至于那个if后的;的作用,你说了我才知道,现在回想一下 ...

函数没错哦。你那样写不是错,只是大家都写qrgs而已,遵从大家的习惯。入乡随俗好发展。你说呢?
作者: 黑马-王建雨    时间: 2012-5-12 11:31
args            
作者: aaawqqq    时间: 2012-5-12 13:57
if后面的分号问题,
顺道一提if不加大括号  则只对下面1行起效果





欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2