我长期以来一直认为,goto如果可能的话,永远不应该使用它.在前几天阅读libavcodec(用C语言编写)时,我注意到它的多种用途.goto在支持循环和函数的语言中使用是否有利?如果是这样,为什么?
我听说使用while(true)是一种糟糕的编程习惯.
所以,我编写了以下代码来从用户那里获取一些数字(默认值).但是,如果用户碰巧输入-1,那么它将退出程序.
如何在没有片刻(真实)的情况下写出来?我可以想到一个条件让while循环关闭会立即被捕获而不会继续直到下一次迭代?
我现在就是这样的:
public static void main(String[] args)
{
System.out.println("QuickSelect!");
while (true)
{
System.out.println("Enter \"-1\" to quit.");
int arraySize = 10;
System.out.print("Enter the size of the array (10): ");
String line = input.nextLine();
if (line.matches("\\d+"))
{
arraySize = Integer.valueOf(line);
}
if (arraySize == -1) break;
int k = 1;
System.out.print("Enter the kth smallest element you desire (1): ");
line = input.nextLine();
if (line.matches("\\d+"))
{
k = Integer.valueOf(k);
}
if (k == -1) break;
List<Integer> randomData = generateRandomData(arraySize, 1, 100); …Run Code Online (Sandbox Code Playgroud) 关于C ++中的这个问题,存在类似的问题,但是我在这里使用JavaScript。我基本上和其他帖子中的OP处于相同的情况。
var input = prompt();
while(true) {
switch(input) {
case 'hi':
break;
case 'bye':
//I want to break out of the switch and the loop here
break;
}
/*Other code*/
}
Run Code Online (Sandbox Code Playgroud)
反正有这样做吗?
我/*Other code*/在代码也应该中断的部分中也有多个开关。
我有一个while循环,当我按下按钮时开始.我正在使用它来维护与另一台计算机上的服务的通信.问题是,当我从另一台计算机上收到"已完成"消息时,我需要它打破while循环并停止监听,直到再次按下该按钮.我所做的一切似乎都没有把它打破.
请注意整个过程在自己的线程中执行.
我试着休息一下; 就在交换机中第一个案例结束之前,没有这样的运气,我不确定是不是因为它是一个期望中断的switch语句; 案件之间或原因是什么.我也尝试过回归; 在那里,但它仍然不会爆发.我最终必须关闭应用程序并重新启动它以再次使用该按钮.
TcpClient client = new TcpClient(serverIP, 11000);
NetworkStream stream = client.GetStream();
Byte[] bytes = new Byte[256];
String data = null;
int i;
stream.Write(copy, 0, copy.Length);
while ((i = stream.Read(bytes, 0, bytes.Length)) != 0)
{
data = System.Text.Encoding.ASCII.GetString(bytes, 0, i);
//MessageBox.Show(data);
switch (data)
{
case "Completed":
this.Invoke((MethodInvoker)delegate
{
progressBar1.Value = 0;
progressBar1.Visible = false;
progressBar1.Update();
if (prod)
{
sqlLink.setProdFile(imageName, destFileName);
} else
{
sqlLink.setTestFile(imageName, destFileName);
if (sqlLink.getTestVM(imageName) != "")
{
if (message.Text("Test VM", "Power …Run Code Online (Sandbox Code Playgroud)