我的程序规格如下。1.所有四个数字都不同。2.千位数字是十位数的三倍。3.数字是奇数。4.数字的总和是27。我遗漏了整个程序的一些代码。它具有干净的编译器,但运行时会自动终止。我认为问题出在数据类型的转换中。
int randomNumber = rand.nextInt(9000) + 1000;
String randomString;
boolean found = true;
while (found)
{
// converting to string to find position of digits and value
randomString = String.valueOf(randomNumber);
// converting to char to transfer back to in while knowing the position of the digits
char position0a = randomString.charAt(0);
char position1a = randomString.charAt(1);
char position2a = randomString.charAt(2);
char position3a = randomString.charAt(3);
// coverted back to int
int position0 = Character.getNumericValue(position0a);
int position1 = Character.getNumericValue(position1a);
int position2 = Character.getNumericValue(position2a);
int position3 = Character.getNumericValue(position3a);
int sumCheck = position0a + position1a + position2a + position3a;
int digit30Check = 3 * position2;
//checking addition to 27
String sumCheck27 = "27";
String sumCheck28 = String.valueOf(sumCheck);
// checking all digits are different
if (position0 != position1 && position0 != position2 && position0 != position3 &&
position1 != position2 && position1 != position3 && position2 != position3)
{
if (position3 != digit30Check) // check if the digit in the thousands place 3 * tens
{
if (sumCheck27.equals(sumCheck28)) // check if the sum is 27
{
if (position0 != 1 && position0 != 3
&& position0 != 5 && position0 != 7 &&
position0 != 9 && position1 != 1 && position1 != 3
&& position1 != 5 && position1 != 7 &&
position1 != 9 && position2 != 2 && position2 != 3
&& position2 != 5 && position2 != 7 &&
position2 != 9 && position3 != 3 && position3 != 3 &&
position3 != 5 && position3 != 7 && position3 != 9)
{
// checks for odd digits
found = false;
System.out.println(randomNumber);
}
else
randomNumber = rand.nextInt(9000) + 1000;
}
else
randomNumber = rand.nextInt(9000) + 1000;
}
else
randomNumber = rand.nextInt(9000) + 1000;
}
else
randomNumber = rand.nextInt(9000) + 1000;
// end while
}
boolean found = false;
while (found)
仅此一项就确保了while循环将永远不会进入,因为它found
是false。while循环中的任何内容都没有任何区别,因为它将永远不会执行。
你可能想写
while (!found)
除了此错误外,您的情况也过于复杂。这是您可以简化它们的方法:
if ((position0 == (3 * position2)) && // note that position0 is the "thousands place", not position3
((position0+position1+position2+position3) == 27) && // sum of digits
(position3 % 2 == 1) && // odd number
(position0 != position1 && position0 != position2 && position0 != position3 &&
position1 != position2 && position1 != position3 && position2 != position3)) { // different digits
found = true;
}
我的程序规范如下。1.所有四位数都不同2.千位中的数字是十位中数字的三倍3.数字是奇数。4.数字之和是27。我遗漏了整个程序的一些代码。它有一个干净的编译,但当它运行时会自动终止。我认为问题出在数据类型的转换上。
我有一个扫描器,它由我的类中的调用。 循环的工作方式是,如果选择了“n”或“n”,它将再次调用构造函数。但是,由于这两种类型是字符串数据类型,构造函数首先调用一个名称,因此它要么将“n”或“n”识别为名称,要么跳过整个名称。我怎么解决这个? 下面的Player类 下面是以作为第一个名称输入的示例输出: 如您所见,问题出现在之后。
问题内容: 我试图弄清楚为什么页面在单击时没有导航到其模板。URL更新,并且我没有JS错误。。我相信它 会加载 文件,但随后会无限加载控制器。我在SessionsController的实例化中添加了代码后,发现了这一点。 布局 我的看法 我的JS 在里面,我有个大而光明的人: 问题答案: 我唯一看到的是缺少括号和逗号。您可以尝试以下方法:
有没有人知道为什么这段代码在运行时返回这个错误,以及如何修复它?: 回溯(最近一次调用):导入线程中的文件“c:/users/amanm/desktop/python/python速成班/threading.py”,第1行 文件“C:\users\amanm\desktop\python\python速成班\threading.py”,第12行,在t1=threading.thread(Targe
问题内容: 我有一个经典的Java EE系统,具有JSF的Web层,用于BL的EJB 3和用于对DB2数据库进行数据访问的Hibernate 3。我在以下情况下苦苦挣扎:用户将启动一个过程,该过程涉及从数据库中检索大型数据集。检索过程花费一些时间,因此用户不会立即收到响应,变得不耐烦,并打开新的浏览器并再次启动检索,有时是多次。EJB容器显然没有意识到第一次检索不再相关的事实,并且当数据库返回结果
问题内容: 数据库引擎如何内部处理varchar列? 对于定义为的列,DBMS在磁盘上分配100个连续字节。但是,对于定义为的列,大概不是这种情况,因为的重点是分配的空间不会超过存储该列中存储的实际数据值所需的空间。因此,当用户将一个包含空列的数据库行更新为一个包含80个字符的值时,那80个字符的空间是从哪里分配的呢? 看来,至少在列值最初以空白或NULL插入,然后以实际值更新的情况下,列必须导致