在用户尝试猜测数字 7 次后,我无法停止 do-while 循环。我不确定如何告诉循环停止并显示超时消息。
谢谢,我感谢任何帮助!
代码:
import java.util.Random;
import java.util.Scanner;
public class numberGuesses {
public static void main (String [] args){
Random rand = new Random();
int inputNumber;
int randomNumber = rand.nextInt(100) + 1;
int guessingLimit = 7;
System.out.println("Rand Number = " +randomNumber); //Temp to test program with correct number
Scanner scan = new Scanner (System.in);
do {
System.out.print("Please enter a number: ");
inputNumber = scan.nextInt();
if (inputNumber > randomNumber)
System.out.println("That's too high!");
if (inputNumber < randomNumber)
System.out.println("That's too …Run Code Online (Sandbox Code Playgroud) DO循环如何正常工作?
假设你有以下循环:
do i=1,10
...code...
end do
write(*,*)I
Run Code Online (Sandbox Code Playgroud)
为什么打印I 11,而不是10?
但是当循环停止时由于
if(something) exit
Run Code Online (Sandbox Code Playgroud)
我是预期的(例如i = 7,退出因为其他一些值达到了它的极限).
这是我长期以来一直要问的一个问题,但到目前为止,它已经接受了它作为"Rails魔术".正如标题所述,为什么Rails形成帮助器看起来像一个do循环?如果您查看官方的Rails文档,它似乎没有解释这一点,它只是通过给出以下作为基本示例直接跳转:
<%= form_tag do %>
Form contents
<% end %>
Run Code Online (Sandbox Code Playgroud)
那么这里究竟发生了什么?为什么表单似乎是创建循环而不是其他语言中没有所述循环的输入表单.
<%= form_for @person, url: {action: "create"} do |person_form| %>
<%= person_form.text_field :name %>
<%= fields_for @person.contact_detail do |contact_details_form| %>
<%= contact_details_form.text_field :phone_number %>
<% end %>
<% end %>
Run Code Online (Sandbox Code Playgroud) 在数据集Work.Invest中,Year的存储值是多少?
数据工作.invest; 做年= 1990年至2004年; 资本+ 5000; 资本+(资本*0.10); 结束; 跑;
SAS基础准备指南中给出的正确答案是d.2005.
在下面的问题中,存储的值是2004年.对于下面显示的程序,以下哪项陈述是错误的?
数据工作.invest; 做年= 1990年至2004年; 资本+ 5000; 资本+(资本*0.10); 输出; 结束; 跑;
DATA步骤结束时的自动输出.DO loop执行15次迭代.对此的正确答案是b.2005.(确定虚假陈述是问题).
我正在处理一段旧的F77代码,并尝试将其转换为等效的F90代码。我在下面遇到了这些问题,有人可以建议我的转换正确吗?
Fortran 77代码:
Subroutine area(x,y,z,d)
do 15 j=1,10
if (a.gt.b) go to 20
15 CONTINUE
20 Statement 1
Statement 2
Statement 3
end subroutine
Run Code Online (Sandbox Code Playgroud)
我试图将其转换为F90,如下所示:
Subroutine area(x,y,z,d)
dloop: do j=1,10
if (a>b) then
statement 1
statement 2
statement 3
else
write(*,*) 'Exiting dloop'
exit dloop
end if
end do dloop
end subroutine
Run Code Online (Sandbox Code Playgroud)
有人可以建议这种方法是否正确吗?在我的结果中,我没有得到我期望的结果。因此,我的逻辑可能存在问题。
当我用Fortran语言编写代码时,我发现当我在do-loop中将REAL值设置为control-var时,输出很奇怪,例如:
do i=0.1,1.0,0.1
write (13,"(F15.6)") i
end do
Run Code Online (Sandbox Code Playgroud)
输出是:0.1,0.2,0.3,0.4,0.5,0.6,0.7,0.8,0.9,1.0.但是当我将起始值设置为0.6时:
do i=0.6,1.0,0.1
write (13,"(F15.6)") i
end do
Run Code Online (Sandbox Code Playgroud)
输出是:0.6,0.7,0.8,0.9,而1.0不是输出.为什么会这样?
我试图itoa()从K&R练习中重新编写函数,但我没有定义它.我在库中看到了函数的答案,但我无法理解do块中的内容.请向我解释一下.谢谢!
/* itoa: convert n to characters in s */
void itoa(int n, char s[])
{
int i, sign;
if ((sign = n) < 0) /* record sign */
n = -n; /* make n positive */
i = 0;
do { /* generate digits in reverse order */
s[i++] = n % 10 + '0'; /* get next digit */
} while ((n /= 10) > 0); /* delete it */
if (sign < 0)
s[i++] = …Run Code Online (Sandbox Code Playgroud) 在 RI 中可以weighted.mean用来计算加权算术平均值。例如:
wt <- c(5, 5, 4, 1)/15
x <- c(3.7,3.3,3.5,2.8)
xm <- weighted.mean(x, wt)
xm
[1] 3.453333
Run Code Online (Sandbox Code Playgroud)
我可以“手工”计算这个: wt[1]*x[1]+wt[2]*x[2]+wt[3]*x[3]+wt[4]*x[4]
我想写一个循环来做同样的事情。我写了这段代码:
xm <-0
for(j in length(wt)){
xm <- xm + wt[j]*x[j]
}
xm
[1] 0.1866667
Run Code Online (Sandbox Code Playgroud)
我究竟做错了什么?
我想创建一个简单的循环,直到用户按下任意键。目标是仅当按下任意键时循环才会停止。否则循环、循环、循环,没有任何交互。我想我的代码会告诉你我想要什么。但我不确定这是否可以用这种类型的循环来解决?
$sec = 0
Write-Host 'Press any key to quit...'
do {
Write-Host -ForegroundColor Green "$sec Sec"
Start-Sleep -Seconds 1
$sec ++
} until ($null = $Host.UI.RawUI.ReadKey('NoEcho,IncludeKeyDown'))
Run Code Online (Sandbox Code Playgroud) 坏消息大家,
我最近开始学习 FORTRAN 来理解代码并将其翻译为 C++(我
知道代码的作用对于这个问题并不重要,但为了提供一些背景知识,
该代码使用自适应网格上的搭配方法解决了边界值问题)。
查看代码,某些“go to”语句与“do continue”相结合
,这确实让我感到困惑。
这是一个例子:
do 100 i=1, n
C DO SOMETHING HERE
if (some condition) go to 90
C DO SOME MORE STUFF HERE
90 continue
C EVEN MORE STUFF HERE
100 continue
Run Code Online (Sandbox Code Playgroud)
我有一些 C 语言编程经验,因此我将用 C 语言编写两种解释,如下
所示,但我不确定哪一种(如果有的话!)是正确的翻译:
for(int i=1;i<=n;i++)
{
//DO SOMETHING HERE
if(some condition) continue;
//DO SOME MORE STUFF HERE
//EVEN MORE STUFF HERE
}
Run Code Online (Sandbox Code Playgroud)
或者:
for(int i=1;i<=n;i++)
{
//DO SOMETHING HERE
if(!some condition)
{
//DO SOME MORE STUFF …Run Code Online (Sandbox Code Playgroud) 在lisp中我有一点问题需要理解
我有这个代码:
(defun iota-b (n)
(do ((x 0 (+1 x))
(u '() (cons x u)))
((> x n) (nreverse u))))
Run Code Online (Sandbox Code Playgroud)
(iota-b 5)
(0 1 2 3 4 5)
在文档中,"do"基本模板是:
(do (variable-definitions*)
(end-test-form result-form*)
statement*)
Run Code Online (Sandbox Code Playgroud)
我真的不明白我的身体在我的身体中的位置iota-b对我而言
(你'()(cons xu)))
显然不是,为什么我们把(u'()(cons xu)))放在变量定义中?
我一直试图修复这个循环,但显然它无法识别输入是否正确.我在这里使用正确的循环吗?
var userChoice = prompt("Do you choose rock, paper or scissors?")
if (userChoice !== "rock", "paper", "scissors") {
do {
prompt("Invalid answer. Please choose rock, paper or scissors.");
} while (userChoice !== "rock", "paper", "scissors");
} else {
Run Code Online (Sandbox Code Playgroud) 我有一个类似于下面的数据集:
ID COL70 COL71 COL72 COL73 COL74
1 4 3 2 -998 .
2 2 0 2 1 -998
3 1 -998 -998 . .
4 3 4 -998 -998 -998
Run Code Online (Sandbox Code Playgroud)
我想要做的是让一个新列让我们称之为NEWCOL,它具有从COL74向后看的第一个非负值,所以它看起来如下:
ID COL70 COL71 COL72 COL73 COL74 NEWCOL
1 4 3 2 -998 . 2
2 2 0 2 1 -998 1
3 1 -998 -998 . . 1
4 3 4 -998 -998 -998 4
Run Code Online (Sandbox Code Playgroud)
我在WPS工作,所以这需要在SAS或PROC SQL中.
do-loops ×13
fortran ×3
do-while ×2
fortran77 ×2
loops ×2
sas ×2
while-loop ×2
arrays ×1
c ×1
common-lisp ×1
for-loop ×1
form-helpers ×1
fortran90 ×1
if-statement ×1
itoa ×1
java ×1
javascript ×1
keypress ×1
lisp ×1
output ×1
powershell ×1
r ×1
ruby ×1
syntax ×1