| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 2427 人关注过本帖
标题:一个无法执行if语句问题
只看楼主 加入收藏
一鑫
Rank: 2
等 级:论坛游民
帖 子:111
专家分:12
注 册:2018-4-12
结帖率:92.86%
收藏
已结贴  问题点数:5 回复次数:10 
一个无法执行if语句问题
import java.util.*;
class Square
{
    int length,xTopLeft,yTopLeft,xBottomRight,yBottomRight;
    int ID;
    static int nextID;
    Square(int xTopLeft,int yTopLeft,int length)
    {
        ID=nextID;nextID++;
        this.length=length;this.xTopLeft=xTopLeft;this.yTopLeft=yTopLeft;
        xBottomRight=xTopLeft+length;yBottomRight=yTopLeft-length;
    }
    void Move(int xOffset,int yOffset)
    {
        xTopLeft=xTopLeft+xOffset;
        yTopLeft=yTopLeft+yOffset;
        xBottomRight=xBottomRight+xOffset;
        yBottomRight=yBottomRight+yOffset;
    }
    double Area()
    {
        return length*length;
    }
    double Perimeter()
    {
        return length*4;
    }
   
}
public class SquareExp {
    public static void main(String[] args)
    {
        Scanner scanner=new Scanner(System.in);
        int length;
        System.out.print("请输入你的边长:");
        length=scanner.nextInt();
        System.out.print("请输入你的左上角顶点x:");
        int x=scanner.nextInt();
        System.out.print("请输入你的左上角顶点y:");
        int y=scanner.nextInt();
        Square square=new Square(x,y,length);
        System.out.println("输入: Y移动矩形  N不移动矩形");
        String a=scanner.nextLine();
        if(a=="Y")
        {
            System.out.print("请输入你移动的x距离:");
            int xOffset=scanner.nextInt();
            System.out.print("请输入你移动的y距离:");
            int yOffset=scanner.nextInt();
            square.Move(xOffset,yOffset);
        }
        else
        {   
        }
        System.out.println("边长="+length+" 周长="+square.Perimeter()+" 面积="+square.Area());
        System.out.print("左上顶点的坐标为:("+square.xTopLeft+","+square.yTopLeft+") ");
        System.out.println("右下顶点的坐标为:("+square.xBottomRight+","+square.yBottomRight+")");
    }
}
为什么没办法执行if语句,用if(a.quealsIgnoreCase("Y"))也不可以
搜索更多相关主题的帖子: int length Scanner System out 
2018-10-13 14:48
一鑫
Rank: 2
等 级:论坛游民
帖 子:111
专家分:12
注 册:2018-4-12
收藏
得分:0 
用数字控制却可以,1走if,2走else 为什么
2018-10-13 14:49
林月儿
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:湖南
等 级:版主
威 望:138
帖 子:2277
专家分:10647
注 册:2015-3-19
收藏
得分:3 
把==改成.equals()试试

剑栈风樯各苦辛,别时冰雪到时春
2018-10-13 16:16
一鑫
Rank: 2
等 级:论坛游民
帖 子:111
专家分:12
注 册:2018-4-12
收藏
得分:0 
回复 3楼 林月儿
不行
2018-10-13 19:32
林月儿
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:湖南
等 级:版主
威 望:138
帖 子:2277
专家分:10647
注 册:2015-3-19
收藏
得分:0 
你好像是上面输入就出问题了吧
打印一下看输入了啥

剑栈风樯各苦辛,别时冰雪到时春
2018-10-13 20:49
红柚
Rank: 4
来 自:咸鱼乡的酸菜鱼
等 级:贵宾
威 望:14
帖 子:53
专家分:218
注 册:2018-4-20
收藏
得分:3 
String a = scanner.next();
String b = "Y";
   if(a.equals(b)){}

我试了这样可以进if,一般我也是这样弄的,引用类型的比较,用equals而且里面是变量名
而且我发现假如用.nextLine()也会有跳过的问题,所以直接用了next(),我也不懂为什么,还是让月儿姐解释下
2018-10-14 13:00
一鑫
Rank: 2
等 级:论坛游民
帖 子:111
专家分:12
注 册:2018-4-12
收藏
得分:0 
回复 5楼 林月儿
什么意思 求指教
2018-10-14 16:56
林月儿
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:湖南
等 级:版主
威 望:138
帖 子:2277
专家分:10647
注 册:2015-3-19
收藏
得分:0 
问题分析:
        nextLine()会把nextInt(),next(),nextDouble(),nextFloat()的结束换行符作为字符串读入,进而不需要从键盘输入字符串nextLine便已经转向了下一条语句执行。
    解决办法:
        在每一个nextInt(),next(),nextDouble(),nextFloat()后都加一个nextLine()语句,将被next()去掉的Enter过滤掉。
参考:https://blog.

剑栈风樯各苦辛,别时冰雪到时春
2018-10-14 19:09
林月儿
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:湖南
等 级:版主
威 望:138
帖 子:2277
专家分:10647
注 册:2015-3-19
收藏
得分:0 
有一种东西叫百度

剑栈风樯各苦辛,别时冰雪到时春
2018-10-14 19:10
红柚
Rank: 4
来 自:咸鱼乡的酸菜鱼
等 级:贵宾
威 望:14
帖 子:53
专家分:218
注 册:2018-4-20
收藏
得分:0 
回复 9楼 林月儿
其实百度了,看了一点,但是没了解清楚,还是不好意思放出来说的。

图片附件: 游客没有浏览图片的权限,请 登录注册


nextLine效果

[此贴子已经被作者于2018-10-14 22:47编辑过]

2018-10-14 22:40
快速回复:一个无法执行if语句问题
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.016687 second(s), 9 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved