我正在尝试学习Java并试图做一个小程序,但我有一个问题,因为我选择了答案时,我会陷入do while循环中。" N" 能帮帮我吗
package calculatrice;
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Calculatrice fonction =new Calculatrice();
Scanner sr = new Scanner(System.in);
boolean noury= true;
boolean Sonia= true;
String expression = sr.nextLine();
while(noury)
{
if(expression.contains("+"))
{
float x = Float.parseFloat(expression.split("\\+")[0]);
float y = Float.parseFloat(expression.split("\\+")[1]);
float c = fonction.somme(x, y);
System.out.println("le resultat " + c);
}
if(expression.contains("-"))
{
float x = Float.parseFloat(expression.split("\\-")[0]);
float y = Float.parseFloat(expression.split("\\-")[1]);
float c = fonction.soustraction(x, y);
System.out.println("le resultat " + c);
}
if(expression.contains("*"))
{
float x = Float.parseFloat(expression.split("\\*")[0]);
float y = Float.parseFloat(expression.split("\\*")[1]);
float c = fonction.multiplication(x, y);
System.out.println("le resultat " + c);
}
if(expression.contains("/")){
float x = Float.parseFloat(expression.split("\\/")[0]);
float y = Float.parseFloat(expression.split("\\/")[1]);
float c = fonction.divion(x, y);
System.out.println("le resultat " + c);
}
do{
System.out.println("voulez vous effecteur une autre operation");
System.out.println("O pour Oui ");
System.out.println("N pour Non ");
String choix = sr.nextLine();
if ((!(choix.equals("O")))&& (!(choix.equals("N"))))
{
Sonia =false;
System.out.println("La valeur saisit n'est pas Correcte veulliez choisir N ou O seulement");
}
else if(choix.equals("N"))
{
noury=false;
}
else
{
System.out.println("Entrez une nouvelle valeur à calculer");
}
}while(Sonia);
}
}
}
答案 0 :(得分:0)
我不知道任何法语,但似乎noury
表示外循环应该继续,而Sonia
表示内循环应该继续。外部循环执行主逻辑,而内部循环严格地用于输入用户,所以看起来 - 如果我错了,请纠正我。看来如果输入既不是“N”也不是“O”,你想再次要求输入。在“if”条件下的代码块中,您应该将Sonia
保留为true,以便内部循环再次运行。如果输入为“N”,则表示您打算结束程序。在Sonia = false;
条件下方的块中设置else if
将结束内循环,而noury = false;
已存在将导致外循环结束。在else块下,当用户输入“O”表示他们想要运行另一个命令时,将Sonia
设置为false,以便内循环结束。最后,在内循环之前设置Sonia = true;
。我相信这些步骤将提供您想要的行为。
答案 1 :(得分:0)
您必须在循环中更改为条件(while或do / while)计算的值。
在第二个循环中,您评估值<script type="text/javascript">
window.translations = @(Html.Raw(ViewBag.translations));
</script>
,但更改window.translations["resourceStringXY"]
的值。
提示:使用有意义的变量名称,有助于避免此类错误。并且一些naming conventions确实存在,例如变量(避免Sonia
,它看起来像一个类的名称)。
答案 2 :(得分:0)
所以我尽力帮助你
首先,我必须放入String expression =sr.nextLine();
的第一个循环
然后我做了什么在seconde循环sonia假,这里是我的变化
`package calculatrice;
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Calculatrice fonction =new Calculatrice();
Scanner sr = new Scanner(System.in);
boolean cond1= true;
boolean cond2= true;
while(cond1)
{
String expression = sr.nextLine();
if(expression.contains("+"))
{
float x = Float.parseFloat(expression.split("\\+")[0]);
float y = Float.parseFloat(expression.split("\\+")[1]);
float c = fonction.somme(x, y);
System.out.println("le resultat " + c);
}
if(expression.contains("-"))
{
float x = Float.parseFloat(expression.split("\\-")[0]);
float y = Float.parseFloat(expression.split("\\-")[1]);
float c = fonction.soustraction(x, y);
System.out.println("le resultat " + c);
}
if(expression.contains("*"))
{
float x = Float.parseFloat(expression.split("\\*")[0]);
float y = Float.parseFloat(expression.split("\\*")[1]);
float c = fonction.multiplication(x, y);
System.out.println("le resultat " + c);
}
if(expression.contains("/")){
float x = Float.parseFloat(expression.split("\\/")[0]);
float y = Float.parseFloat(expression.split("\\/")[1]);
float c = fonction.divion(x, y);
System.out.println("le resultat " + c);
}
do{
System.out.println("voulez vous effecteur une autre operation");
System.out.println("O pour Oui ");
System.out.println("N pour Non ");
String choix = sr.nextLine();
if ((!(choix.equals("O")))&& (!(choix.equals("N"))))
{
cond2 =false;
System.out.println("La valeur saisit n'est pas Correcte veulliez choisir N ou O seulement");
}
else if(choix.equals("N"))
{
cond1=false;
}
else
{
System.out.println("Entrez une nouvelle valeur à calculer");
cond2 = false;
}
}while(cond2);
}
}
}`