我经常听说break在Java 中使用s被认为是不好的做法,但是在阅读Stack Overflow上的一些线程之后,我已经看到了其他方面.许多人说在某些情况下这是可以接受的.
在这种情况下,我有点困惑的是什么/不是坏习惯.
对于Project Euler:问题7,我构建了下面的代码.挑战是找到第10001个素数.
int index = 2, count = 1, numPrime = 1;
while (true) {
index++;
if (isPrime(index)) {
count = index;
numPrime++;
}
if (numPrime >= 10001)
break;
}
System.out.println(count);
Run Code Online (Sandbox Code Playgroud)
这会返回正确的答案(21毫秒),但我是否忽略了严重的警告?创造一个没有休息的while循环是100%可能的,但我发现这更容易理解.
我使用break;不良做法的方式是什么?我知道总有一种方法可以使用它,但这真的很可怕吗?
非常感谢
瑞斯蒂昂
编辑
这是我的isPrime()代码.我不妨在这方面优化它.
public static boolean isPrime(long num) {
if (num == 2)
return true;
if (num % 2 == 0 || num <= 0)
return false;
for (long i = 3; i * i <= …Run Code Online (Sandbox Code Playgroud) 在Haskell中从字符串中去除换行符的惯用方法是什么(或者有没有)?或者我必须通过查找尾随的换行符/空格然后删除它们来制作我自己的?
编辑:我正在寻找Python的rstrip所做的,但不需要可选的"chars"参数:
string.rstrip(s [,chars])
返回删除了尾随字符的字符串副本.如果省略chars或None,则删除空格字符.如果给定而不是None,则字符必须是字符串; 字符串中的字符将从调用此方法的字符串末尾删除.
我有x号,<div>我需要在n之后选择所有.
<div class=foo>4:00</div>
<div class=foo>5:00</div>
<div class=foo>6:00</div>
<div class=foo>7:00</div>
<div class=foo>8:00</div>
Run Code Online (Sandbox Code Playgroud)
例如,给定n = 3,并且在第3个将产生之后div.foo删除所有:div.foodiv.foo
<div class=foo>4:00</div>
<div class=foo>5:00</div>
<div class=foo>6:00</div>
Run Code Online (Sandbox Code Playgroud)
谢谢
我对SQL很新,请原谅我的无能.
我正在尝试编写一个触发器,在插入到表1时,将该记录插入到表2中.
表1是 [rps_lab_dev].[dbo].[Lab_Employee_Time_Off]
表2是 [dbo].[Lab_Employee_Time_Off_Detail]
CREATE TRIGGER updatetrig
ON [rps_lab_dev].[dbo].[Lab_Employee_Time_Off]
FOR INSERT
AS
...
Run Code Online (Sandbox Code Playgroud)
我不确定从哪里开始(如果这是正确的,我现在没有sql检查).任何方向将不胜感激.
imgView是一个UIImageView,它作为子视图添加到自定义UITableViewCell类中.点击图像时不会调用该操作.
[imgView addGestureRecognizer:[[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(openMedia:)]];
Run Code Online (Sandbox Code Playgroud) 假设我想制作一个HumanBody类.我想存储每个肢体的长度.
HumanBody.LeftArmLength = 14;
HumanBody.RightArmLength = 14.1;
HumanBody.LeftLegLength = 32;
HumanBody.RightLegLength = 31.9;
Run Code Online (Sandbox Code Playgroud)
这一切都很好,但似乎做一些事情会更好:
HumanBody.Arm.Left.Length = 14;
HumanBody.Arm.Right.Length = 14.1;
HumanBody.Leg.Left.Length = 32;
Humanbody.Leg.Right.Length = 31.9;
Run Code Online (Sandbox Code Playgroud)
所以这将涉及制作子类.我正在描述被认为是"良好实践"的东西吗?看起来这是一种更有条理的存储数据的方式.
编辑:这个例子非常简单,但如果要存储100个不同的数据,这似乎是一个更好的方法.
在MATLAB中的一些数据处理结束时,我想创建一个图表,显示一系列数据的彩色时间轴条.我有许多流程,每个流程都经历类似的步骤,并且在不同的时间启动和停止并且不同.理想情况下,它最终看起来像这样(原谅ASCII艺术):
| ###***$$$$$$$$$$ Process 1
| ###***$$$$$$$ Process 2
| ###$$$$$ Process 3
| *******$$$$$$ Process 4
+------------------------------------------
Time
在哪里# *和$哪些站立的是不同颜色的固体相邻块(每个步骤一个颜色,过程经过;注意一些是可选的).
标签可能在其他地方,但每条线旁边都很好.
我使用rectangle和已经破解了一个解决方案text,但似乎这可能是MATLAB中现有的一种情节,我还没有找到.你知道吗?
当另一个窗口关闭时,是否有一种方法可以暂停一个窗口事件?我需要在另一个窗口中询问一些细节,一旦我得到细节,然后我关闭那个窗口,主窗口需要知道.
谢谢.
我正在使用JNI调用DefineClass()从C定义一个java类,然后我注册本机类中的方法的本机回调.该类有两个静态方法,两者都是本机方法.我使用RegisterNatives()来注册本机函数.两个电话都成功了
但是当我从我的Java代码中引用这些本机方法时,我得到java.lang.UnsatisfiedLinkError myPackage.myClass.myMethod(I)V
但是我知道DefineClass为myPackage.myClass返回了一个类对象,我知道myMethod(I)V已经被注册为该类的一个方法.
我得到这个失败就像它要执行main()一样 - 对我的本机方法的调用是(暂时的,用于测试).
作为测试,我尝试在同一个JNIEnv上两次调用DefineClass来查看发生了什么.我得到一个重复的类定义错误.我也尝试在定义它之后调用FindClass()并且JNIEnv返回对已定义类的引用.
因此,我是动态创建类的definity,但是当我尝试引用它的方法时它失败了.
有任何想法吗?所有输入赞赏.
平台:Windows,64位XP上的32位代码.