A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

公子小白

初级黑马

  • 黑马币:43

  • 帖子:19

  • 精华:0

© 公子小白 初级黑马   /  2015-5-20 17:33  /  3368 人查看  /  16 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

5黑马币
代码如下:
格式一:
import java.util.*;
public class IfDemo {
public static void main(String[] args) {

  Scanner input = new Scanner(System.in);
  System.out.println("请输入水果种类:");
  String name = input.next();
  
       if(name.equals("苹果"))
       {
        System.out.println(name+"应放入001号货架上!");
       }
       else if(name.equals("香蕉"))
       {
        System.out.println(name+"应放在002号货架上!");
       }
       else if(name.equals("葡萄"))
       {
        System.out.println(name+"应放在003号货架上!");
       }
       else
       {
        System.out.println("哎呦,逗我玩呢!");
       }
    input.close();
}
}

-----------------------------------忧伤的分割线--------------------------------------

格式二:
import java.util.*;
public class IfDemo {
public static void main(String[] args) {

  Scanner input = new Scanner(System.in);
  System.out.println("请输入水果种类:");
  String name = input.next();
  
       if(name.equals("苹果"))
       {
        System.out.println(name+"应放入001号货架上!");
       }
       else if(name.equals("香蕉"))
       {
        System.out.println(name+"应放在002号货架上!");
       }
       else if(name.equals("葡萄"))
       {
        System.out.println(name+"应放在003号货架上!");
       }
       else if(!name.equals("葡萄")&&!name.equals("香蕉")&&!name.equals("苹果"))
       {
        System.out.println("哎呦,逗我玩呢!");
       }
    input.close();
}
}

-----------------------------------------------我是分割线-------------------------------------------

运行结果如下:
苹果
哎呦,逗我玩呢!

---------------------------------------------华丽的分割线--------------------------------------------
那么问题来了,为什么不管输入什么,总是输出哎呦,逗我玩呢!

最佳答案

查看完整内容

import java.util.*; public class IfDemo { public static void main(String[] args) { Scanner input = new Scanner(System.in); System.out.println("请输入水果种类:"); String name = input.nextLine(); System.out.println(name); if(name.equals("苹果")) { System.out.println(name+"应放入001号货架上!"); } else if(name.equals("香蕉")) { System.ou ...

16 个回复

正序浏览
你的逻辑双与那是如果不是苹果并且不是葡萄并且不是香蕉才会输出那句"哎呦,逗我玩呢!"
回复 使用道具 举报
  Scanner 是什么 -0-
回复 使用道具 举报
使用逻辑运算符试试
回复 使用道具 举报
binglin 发表于 2015-5-20 18:33
Scanner input = new Scanner(System.in);
   System.out.println("请输入水果种类:");
   String name =  ...

66666
回复 使用道具 举报
代码没问题,排查了一下,是输入的时候光标的位置不对。
回复 使用道具 举报
binglin 发表于 2015-5-20 18:30
import java.util.*;
public class IfDemo {
public static void main(String[] args) {

把你的代码全部复制进eclipse中,输出结果还是有问题。
不晓得是不是我的输入方式不对。
回复 使用道具 举报
本帖最后由 公子小白 于 2015-5-20 22:47 编辑
lucien_he 发表于 2015-5-20 18:33
else if(!name.equals("葡萄")||!name.equals("香蕉")||!name.equals("苹果"))
       {
        System.ou ...

请再看一下格式一
格式二的运算符没问题,这里是或的关系,不是且的关系。
回复 使用道具 举报
EggEgg 中级黑马 2015-5-20 22:00:40
9#

RE: If循环语句

本帖最后由 EggEgg 于 2015-5-20 22:02 编辑

实在是不知道你的格式一和格式二运行怎么会出现你的运行结果 ,只有在dos输入的不是苹果、葡萄香蕉的时候才会输出“哎呦,逗我玩呢!” 试了几遍不管是 input.nextLine();是否改成这样 它的输出依然是符合代码要求的 。怀疑你的输入方式是不是有问题,不然真不知道“运行结果如下:
苹果
哎呦,逗我玩呢!”是怎么输出来的!
回复 使用道具 举报
景彬 中级黑马 2015-5-20 20:42:53
8#
binglin 发表于 2015-5-20 20:10
import java.util.*;
public class IfDemo {
public static void main(String[] args) {

支持,细节考虑的太棒了
回复 使用道具 举报
本帖最后由 binglin 于 2015-5-20 20:13 编辑

import java.util.*;
public class IfDemo {
public static void main(String[] args) {

  Scanner input = new Scanner(System.in);
  System.out.println("请输入水果种类:");
  String name = input.nextLine();               //进行修改
  
       if(name.equals("苹果"))
       {
        System.out.println(name+"应放入001号货架上!");
       }
       else if(name.equals("香蕉"))
       {
        System.out.println(name+"应放在002号货架上!");
       }
       else if(name.equals("葡萄"))
       {
        System.out.println(name+"应放在003号货架上!");
       }
       else if(!name.equals("葡萄")&&!name.equals("香蕉")&&!name.equals("苹果"))
       {
        System.out.println("哎呦,逗我玩呢!");
       }
    input.close();
}
}
我运行的四种情况都可以输出


QQ截图20150520200145.png (120.04 KB, 下载次数: 8)

QQ截图20150520200145.png

QQ截图20150520200321.png (113.33 KB, 下载次数: 6)

QQ截图20150520200321.png

QQ截图20150520200355.png (3.37 KB, 下载次数: 6)

QQ截图20150520200355.png
回复 使用道具 举报
如果你的问题是在输入其他内容时为什么总是出现“哎呦,逗我玩呢!“,是因为逻辑运算符的问题,&&的意思是并且,也就是你输入的这个字符串必须等于香蕉又等于苹果又等于葡萄时才不会输出那段话,这是不可能的所以肯定会输出,把&&改成||(或者)就好了
回复 使用道具 举报
binglin 发表于 2015-5-20 18:33
Scanner input = new Scanner(System.in);
   System.out.println("请输入水果种类:");
   String name =  ...

测试了下,结果不变。
回复 使用道具 举报
Scanner input = new Scanner(System.in);
   System.out.println("请输入水果种类:");
   String name = input.next();
中最后一句改成String name = input.nextLine();
next()与nextLine()获取的值不一样,前者获取字符串数组,后者获取一行数据
回复 使用道具 举报
else if(!name.equals("葡萄")||!name.equals("香蕉")||!name.equals("苹果"))
       {
        System.out.println("哎呦,逗我玩呢!");
       }
------------------------结果-------------------------
苹果
苹果应放入001号货架上!

||是或的意思    &&  是与  你最后代码  要求全部 符合要求  既苹果葡萄香蕉  全部  当然不对   
满足 三个水果其中一个  输入即可
回复 使用道具 举报
本帖最后由 公子小白 于 2015-5-20 17:41 编辑

请高手指教   在线等
回复 使用道具 举报
import java.util.*;
public class IfDemo {
public static void main(String[] args) {

  Scanner input = new Scanner(System.in);
  System.out.println("请输入水果种类:");
  String name = input.nextLine();
  System.out.println(name);
  
       if(name.equals("苹果"))
       {
        System.out.println(name+"应放入001号货架上!");
       }
       else if(name.equals("香蕉"))
       {
        System.out.println(name+"应放在002号货架上!");
       }
       else if(name.equals("葡萄"))
       {
        System.out.println(name+"应放在003号货架上!");
       }
       else
       {
        System.out.println("哎呦,逗我玩呢!");
       }
    input.close();
}
}
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马