相关疑难解决方法(0)

在支持循环和函数的语言中使用'goto'是否有利?如果是这样,为什么?

我长期以来一直认为,goto如果可能的话,永远不应该使用它.在前几天阅读libavcodec(用C语言编写)时,我注意到它的多种用途.goto在支持循环和函数的语言中使用是否有利?如果是这样,为什么?

c language-agnostic exception-handling goto

194
推荐指数
15
解决办法
5万
查看次数

如何从Java中的循环中删除while(true)?

我听说使用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)

java infinite-loop

3
推荐指数
1
解决办法
2802
查看次数

打破一会儿循环,一口气切换

关于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*/在代码也应该中断的部分中也有多个开关。

javascript break while-loop switch-statement

3
推荐指数
1
解决办法
1770
查看次数

如何摆脱这种特殊的循环?

我有一个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)

c# tcplistener while-loop

1
推荐指数
1
解决办法
161
查看次数