关于一个java代码的问题,高人指点一下

来源:百度知道 编辑:UC知道 时间:2024/05/31 13:18:36
看一下这个代码吧
public class Lab2Q6
{
public static void main(String args[])
{
System.out.println("Please enter a number:");
double num=Keyboard.readDouble();
if (num>=0)
double sqrtNum=Math.sqrt(num);
System.out.print("The square root of your number is"+sqrtNum);
else
{
System.out.print("There is no real solution for square root of a negative number.");
}
}
}
这是一个求平方根的代码,但是没法运行,请问问题出在哪儿呢?
我把if和else后的内容互换一下,再把if后的括号内容改成num<0,那这样就可以运行了,那这又是什么问题呢?高人指点一下啊
那为什么if后也加上花括号就可以了呢?如果把num>=0改成num<0,然后if和else后的内容互换,这样就直接可以运行,不用在if后再加花括号啊,这是为什么呢?

语法错误

你的if也有花括号括起来就可以了

if (num>=0)
double sqrtNum=Math.sqrt(num);
System.out.print("The square root of your number is"+sqrtNum);
else

改成:
if (num>=0) {
double sqrtNum=Math.sqrt(num);
System.out.print("The square root of your number is"+sqrtNum);
} else

补充问题回答:
因为你换了顺序后,在原先if后面有个System.out那个语句就可以执行了

你可以自己思考下if/else的执行顺序就明白了,这样有助于你理解机器是怎么解读你的代码

if (num<0)
System.out.print("There is no real solution for square root of a negative number.");
else
{
double sqrtNum=Math.sqrt(num);
System.out.print("The square root of your number is"+sqrtNum);
}

这个是换完的代码
if或者else后面没有花括号,电脑会认为你的程序块只有一句话,那么if后面只有一句话,可以正常执行
else后面有花括号,电脑认为是两句话,当然是可以正常执行的了