小编iwa*_*ram的帖子

使用!=与计数器控制的循环

今天的最后一个问题...明天我会回来的......我有很多要跟进...

我正在寻找Reilly Java文本 - 谈论反控制循环模式..(无论什么语言......)

用于计数器控制循环(for,while等)和嵌套循环的作者...使用!=进行测试...现在我意识到!=用于某些具有事件控制循环的情况 - 如Sentinel或EOF类型循环 - 但对我来说 - 使用它与计数器控制循环是一个坏主意...很容易出错...

例子:

x = 0;
while (x != 100) {
   y = 0;
  while (y != 100) {

   ...
   y++;
 }
  x++;
}
Run Code Online (Sandbox Code Playgroud)

如果说...使用其他关系运营商会更好吗?

x = 0;
while (x < 100) {   //or even better some defined constant...
   y = 0;
  while (y < 100) {

   ...
   y++;
 }
  x++;
} 
Run Code Online (Sandbox Code Playgroud)

从我所看到的通常是文本中提出的方式..classes.etc ..

再一次 - 你是否会认为这很糟糕 - 或者只是采取不同的方式......谢谢......

c++ java

6
推荐指数
4
解决办法
2298
查看次数

为什么解决方案是这样的?

从Java Malik教科书中确定一个数字是否可以被11整除.

代码解决方案:

import java.util.*;

public class Divby11
{
    static Scanner console = new Scanner(System.in);

    public static void main (String[] args)
    {
        int num, temp, sum;
        char sign;

        System.out.print("Enter a positive integer: ");
        num = console.nextInt();
        System.out.println();

        temp = num;

        sum = 0;
        sign = '+';

        do
        {
            switch (sign)
            {
            case '+' :
                sum = sum + num % 10;
                sign = '-';
                break;

            case '-' :
                sum = sum - num % 10;
                sign = '+';
            }

            num …
Run Code Online (Sandbox Code Playgroud)

java

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

不使用跳转语句的结构化解决方案

来自Schaums C++文本

删除goto-说使用标志

代码段:

const int N2 = 5;
int i, j, k;

  for (i = 0; i < N2; i++)
  { for (j = 0; j < N2; j++)
    { for (k = 0; k < N2; k++)
       if (i + j + k > N2)
           goto esc;
       else
          cout <<  i + j + k << " ";
       cout << "* ";
    }
   esc: cout << "." << endl;
  }
Run Code Online (Sandbox Code Playgroud)

解决方案:

const int 5;
int i, j, k; …
Run Code Online (Sandbox Code Playgroud)

c++

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

取消这个goto声明

正在从ACM编程竞赛档案中搜索并找到了一个coconuts程序的解决方案:它有一个转到它 - 我该如何消除它?是否有一个模板或程序要遵循这样做.谢谢

/*
1997 East-Central ACM regional programming contest
Held on November 8, 1997
Coconuts, Revisited -- Problem 3
Sample solution by Ed Karrels, Ed@tool.com
November 1997
*/
#include <stdio.h>
/* return 1 if this number of coconuts can be divided up
properly between this number of people */
int SplitCoco(long n_coco, long n_people) {
long i;
for (i=0; i<n_people; i++) {
/* check that the coconuts divide by the number of people
plus one remainder */
    if (n_coco …
Run Code Online (Sandbox Code Playgroud)

c c++

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

标签 统计

c++ ×3

java ×2

c ×1