游戏制作者语言 - 循环

时间:2014-11-09 20:03:30

标签: loops gml

正在开发一个程序,假设循环并显示13次。这是我的代码

 { 
var count; 
var user_Input;
var output_msg;
var cel;
count = 0;

   do 
      { 
        user_Input = get_integer("Temperature conversion","");
        count = count + 1;
        cel = user_Input * 9/5 +32;
        user_Input = user_Input +10;
        output_msg =(string(count) + "Celsius" + string(user_Input) + " = Farenheit " + string(cel));
        show_message(output_msg);
        } 
         until (count == 13)

 }

它的作用是每当我按下Enter键时显示循环而不是一次显示全部13循环如果我输入10例如每次循环它假设从最后一个循环添加10。

例如。 1.摄氏度10 = Farenheit(这里回答)
..... 2.摄氏度20 =华氏度(回答这里)
 ...... 13。 Celsuis 130 = Farenheit""
如果有人能指导我并帮助我那将会很棒

1 个答案:

答案 0 :(得分:1)

您必须做的是:

  1. 将对话框show_message 移到循环之外,确切地说,在Do循环之后。然后,它将仅在循环结束时显示,而get_integer对话框当然会等待用户输入值。
  2. 移动get_integer以及它之前的循环。用户只需输入一次值。如果你把它放在循环中,你将被要求输入值第13次......
  3. 将生成的计算附加到output_msg 本身 中包含的要显示的消息中,最后包含换行符"#"

  4. {
        var count = 0;
        var user_Input;
        var output_msg = "";
        var cel;
        count = 0;
    
        user_Input = get_integer("Temperature conversion","");
        do
            {
            count = count + 1;
            cel = user_Input * 9 / 5 + 32;
            user_Input = user_Input + 10;
            output_msg = (output_msg + string(count) + ". Celsius" + string(user_Input) + " = Farenheit " + string(cel) + "#");
            }
        until (count == 13)
        show_message(output_msg);
    }
    

    为清楚起见,我已经初始化了一些变量初始值。

    您的问题不是代码问题,它是一个逻辑问题(换行除外)循环内的所有内容(Do,While)将在每次迭代时执行。如果您不想要执行某些操作,则必须将其移出循环(之前/之后),或使用条件检查。