gpt4 book ai didi

java - while 循环条件似乎没有被检查

转载 作者:行者123 更新时间:2023-12-01 14:44:22 26 4
gpt4 key购买 nike

所以这是我的代码,虽然只是不检查条件,但 if 条件有效。我一点也不知道到底发生了什么,因为在我看来一切都很好。

import java.lang.Integer;

public class Wielomian
{
public double [] mnozniki;
public int max;


Wielomian(String ciag)
{
int tmp;

int stopien;

//int iteration=0;
int poczatek=0;

tmp=ciag.indexOf('^');
stopien=Integer.valueOf(ciag.substring(tmp+1,tmp+2));
mnozniki = new double[stopien+1];
max = stopien;
tmp=0;
for(int i=1; i< ciag.length() ; ++i)// +1.0*x^3-1.0*x^1-2.0
{
//System.out.println("some:"+i);
if(ciag.charAt(i)=='*')
{
// System.out.println("some:k");
stopien=Integer.valueOf(ciag.substring(i+3,i+4));

int iteration=i;

while(((ciag.charAt(iteration))!='-')||((ciag.charAt(iteration))!='+'))
{
// System.out.println("some2:"+iteration);
--iteration;
if (iteration<=0) break;
}
poczatek=iteration;
mnozniki[stopien]=Double.parseDouble(ciag.substring(poczatek,i-1));

}


}
}

public void wypisz()
{
int i;
for(i=0;i<max;++i)
{

System.out.println("x^" + i+":"+mnozniki[i]);
}
}

主类:

    public class lab03
{
public static void main(String args[])
{

String n ="1.0*x^3-1.0*x^1-2.0";
Wielomian wx = new Wielomian(n);


wx.wypisz();


}
}

在粘贴箱中: http://pastebin.com/sgpY2AuG http://pastebin.com/eqXHNk0N <- 忽略第 35 行

最佳答案

((ciag.charAt(iteration))!='-')||((ciag.charAt(iteration))!='+'))

总是正确的,这是一个典型的错误(来自“not x or y”的混淆,实际上意味着“not (x or y)”,但大多数新手代码为“(not x) or (not y)” ,使用 && 代替或将否定放在 OR 之外

((ciag.charAt(iteration))!='-')&&((ciag.charAt(iteration))!='+'))

!((ciag.charAt(iteration))=='-')||((ciag.charAt(iteration))=='+'))

参见de Morgan's law

关于java - while 循环条件似乎没有被检查,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15599983/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com