Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/kotlin/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何停止循环,然后继续?_Java - Fatal编程技术网

Java 如何停止循环,然后继续?

Java 如何停止循环,然后继续?,java,Java,有人知道如何停止或继续循环吗。我想问用户您想继续(是)还是(否)?。。。在代码中执行此操作时,循环将退出。我做错了什么?提前谢谢你的帮助 import java.util.Scanner; public class salarywithdoloop { public static void main(String args[]) { Scanner kb = new Scanner(System.in); int salary = 0; d

有人知道如何停止或继续循环吗。我想问用户您想继续(是)还是(否)?。。。在代码中执行此操作时,循环将退出。我做错了什么?提前谢谢你的帮助

import java.util.Scanner;
public class salarywithdoloop {
    public static void main(String args[]) {
        Scanner kb = new Scanner(System.in);
        int salary = 0;
        double federaltax = 0;
        double netsalary = 0;
        double totaltax = 0;
        double statetax = 0;
        int over_100000 = 0;
        int between50_100000 = 0;
        int between25_50000 = 0;
        int below25000 = 0;
        String stop = "";
        int count = 0;
        do {
            System.out.println("Please Input your salary");
            salary = kb.nextInt();
            if (salary >= 100000) {
                statetax = salary * .05;
                federaltax = salary * .20;
                netsalary = statetax + federaltax;

            } else {
                statetax = salary * .05;
                federaltax = salary * .15;
                netsalary = statetax + federaltax;

            }
            if (salary >= 100000) {
                over_100000 = over_100000 + 1;
            } else if (salary >= 50000 && salary <= 100000) {
                between50_100000 = between50_100000 + 1;
            } else if (salary >= 25000 && salary <= 50000) {
                between25_50000 = between25_50000 + 1;
            } else {
                below25000 = below25000 + 1;
            }

            System.out.println("Federal tax :" + federaltax);
            System.out.println("netsalary :" + netsalary);
            System.out.println("statetax :" + statetax);
            System.out.println("salary :" + salary);
            System.out.println("Over 100000: " + over_100000);
            System.out.println("Between 50000 and 100000: " + between50_100000);
            System.out.println("Between 25000 and 50000: " + between25_50000);
            System.out.println("Below 25000:" + below25000);

            System.out.println("Do you want to continue?");
            stop = kb.nextLine();
            kb.nextLine();

            if (stop.equals("yes")) {
                continue;
            } else if (stop.equals("no")) {
                break;
            }
        } while (0 <= count);
    }     
}
import java.util.Scanner;
公共级别带薪工资单{
公共静态void main(字符串参数[]){
扫描仪kb=新扫描仪(System.in);
int工资=0;
双重联邦税=0;
双netsalary=0;
双重总税=0;
双州税=0;
int大于_100000=0;
介于50和100000之间的整数=0;
int介于25_50000=0之间;
int低于25000=0;
字符串停止=”;
整数计数=0;
做{
System.out.println(“请输入您的工资”);
salary=kb.nextInt();
如果(工资>=100000){
州税=工资*.05;
联邦税=工资*.20;
netsalary=州税+联邦税;
}否则{
州税=工资*.05;
联邦税=工资*.15;
netsalary=州税+联邦税;
}
如果(工资>=100000){
超过10万欧元=超过10万欧元+1;

}否则,如果(工资>=50000&&salary=25000&&salary只需将
do while
中的
while
条件更改为此

while(stop.equals("yes"));
然后可以删除
do while
循环中的
if else

// The below if-else is not required at all, I commented it, but you can delete it.
//if (stop.equals("yes")) {
    //continue;
//} else if (stop.equals("no")) {
    //break;
//}
您需要反转2
readLine()
语句

kb.nextLine(); // line 1, this will consume the enter
stop = kb.nextLine(); // line 2, // this will actually get the next user input
所以你想要的逻辑是

while (true) {

   if (stop.equals("yes")) continue;
   break;

}

continue
转到do..while循环的下一次迭代;
break
退出循环。切换代码中的
continue
break

System.out.println("Do you want to continue?"); 
           stop = kb.nextLine();
           kb.nextLine();


您的问题将通过以下方式解决:

System.out.println("Do you want to continue?");
stop = kb.nextLine();
stop = kb.nextLine();

if (stop.equals("yes"))
{
    continue;
} else if (stop.equals("no"))
{
    break;
}
试试这个

 public static void main(String args[])
  {

       Scanner kb = new Scanner(System.in);
       int salary = 0;
       double federaltax =0;
       double netsalary=0;
       double totaltax = 0;
       double statetax=0;
       int over_100000=0;
       int between50_100000=0;
       int between25_50000=0;
       int below25000=0;
       String stop="";
       int count=0;
       do
       {
           System.out.println("Please Input your salary");
           salary = kb.nextInt();
                            if(salary >= 100000) 
                            {
                                 statetax= salary * .05;
                                 federaltax = salary * .20; 
                                 netsalary = statetax + federaltax;

                            }
                            else
                            {
                                 statetax= salary * .05;
                                 federaltax = salary * .15; 
                                 netsalary = statetax + federaltax;                  

                            }
                            if(salary >= 100000) 
                            {
                             over_100000 =  over_100000 + 1;
                            }
                            else if(salary >= 50000 && salary <=100000) 
                            {
                             between50_100000 =  between50_100000 + 1;
                            }
                            else if(salary >= 25000 && salary <=50000) 
                            {
                             between25_50000 =  between25_50000 + 1;
                            }
                            else
                            {
                              below25000 = below25000 + 1;
                            }


           System.out.println("Federal tax :" + federaltax);
           System.out.println("netsalary :" + netsalary);
           System.out.println("statetax :" + statetax);
           System.out.println("salary :" + salary);
           System.out.println("Over 100000: " + over_100000);
           System.out.println("Between 50000 and 100000: " + between50_100000);
           System.out.println("Between 25000 and 50000: " +  between25_50000);
           System.out.println("Below 25000:" +  below25000);

           System.out.println("Do you want to continue?"); 
           stop = kb.nextLine();

      }while(stop.equals("yes"));

   }  
publicstaticvoidmain(字符串参数[])
{
扫描仪kb=新扫描仪(System.in);
int工资=0;
双重联邦税=0;
双netsalary=0;
双重总税=0;
双州税=0;
int大于_100000=0;
介于50和100000之间的整数=0;
int介于25_50000=0之间;
int低于25000=0;
字符串停止=”;
整数计数=0;
做
{
System.out.println(“请输入您的工资”);
salary=kb.nextInt();
如果(工资>=100000)
{
州税=工资*.05;
联邦税=工资*.20;
netsalary=州税+联邦税;
}
其他的
{
州税=工资*.05;
联邦税=工资*.15;
netsalary=州税+联邦税;
}
如果(工资>=100000)
{
超过10万欧元=超过10万欧元+1;
}
否则,如果(工资>=50000&&salary=25000&&salary请尝试以下操作:

           System.out.println("Do you want to continue?"); 
//            stop = kb.nextLine();
//            kb.nextLine();
           stop = kb.next();

它终于起作用了。非常感谢……很高兴它为你起作用了!:)这并没有回答问题。它只是发布代码。对于以后查看的人来说没有用处-他们不知道你做了什么。@user2310289-似乎OP只想要一个工作代码,这是经常发生的情况。
 public static void main(String args[])
  {

       Scanner kb = new Scanner(System.in);
       int salary = 0;
       double federaltax =0;
       double netsalary=0;
       double totaltax = 0;
       double statetax=0;
       int over_100000=0;
       int between50_100000=0;
       int between25_50000=0;
       int below25000=0;
       String stop="";
       int count=0;
       do
       {
           System.out.println("Please Input your salary");
           salary = kb.nextInt();
                            if(salary >= 100000) 
                            {
                                 statetax= salary * .05;
                                 federaltax = salary * .20; 
                                 netsalary = statetax + federaltax;

                            }
                            else
                            {
                                 statetax= salary * .05;
                                 federaltax = salary * .15; 
                                 netsalary = statetax + federaltax;                  

                            }
                            if(salary >= 100000) 
                            {
                             over_100000 =  over_100000 + 1;
                            }
                            else if(salary >= 50000 && salary <=100000) 
                            {
                             between50_100000 =  between50_100000 + 1;
                            }
                            else if(salary >= 25000 && salary <=50000) 
                            {
                             between25_50000 =  between25_50000 + 1;
                            }
                            else
                            {
                              below25000 = below25000 + 1;
                            }


           System.out.println("Federal tax :" + federaltax);
           System.out.println("netsalary :" + netsalary);
           System.out.println("statetax :" + statetax);
           System.out.println("salary :" + salary);
           System.out.println("Over 100000: " + over_100000);
           System.out.println("Between 50000 and 100000: " + between50_100000);
           System.out.println("Between 25000 and 50000: " +  between25_50000);
           System.out.println("Below 25000:" +  below25000);

           System.out.println("Do you want to continue?"); 
           stop = kb.nextLine();

      }while(stop.equals("yes"));

   }  
           System.out.println("Do you want to continue?"); 
//            stop = kb.nextLine();
//            kb.nextLine();
           stop = kb.next();