繁体   English   中英

Java 输出行,每行包含两个字符串

[英]Java output lines with each lines containing two string

我想输出 N 行,每行包含 Mary 或 Jobert。 我只知道如何循环但我不知道它会如何根据 N 号停止

import java.util.Scanner;
class HelloWorld {
    public static void main(String[] args) {
      
      int n= 5;
      
    for (int i = 1; i <= 5; i++) {
      for (int j = 1; j < i; j++) {
      
        System.out.println("Mary ");
       
      }
       for (int k = 1; k < i; k++) {
          System.out.println("Jobert");
       
      }

    }
    }
}

输出是

Mary 
Jobert
Mary 
Mary 
Jobert
Jobert
Mary 
Mary 
Mary 
Jobert
Jobert
Jobert
Mary 
Mary 
Mary 
Mary 
Jobert
Jobert
Jobert
Jobert

但我想要的是它会停在 5 个单词处,因为 n 是 5

Mary 
Jobert
Mary 
Mary 
Jobert

你可以试试这个。 它会解决你的问题。

import java.util.Scanner;
class HelloWorld {
    public static void main(String[] args) {
      
      int n= 5;
      
    for (int i = 1; i <= 5; i=i+2) {
      for (int j = 1; j < i; j=j+2) {
      
        System.out.println("Mary ");
       
      }
       for (int k = 1; k < i; k=k+4) {
          System.out.println("Jobert");
       
      }

    }
    }
}

Try below code :

class Test {
    public static void main(String[] args) {
      
        int n = 7;
        int counter = 0;
      
        for (int i = 1; i <= n; i++) {
            for (int j = 1; j < i; j++) {
                if(j > 1) {
                    counter++;
                    System.out.println("Mary ");
                }
                
                if(counter == n) {
                    break;
                }
            }
       
            for (int k = 1; k < i; k++) {
                if(k > 1) {
                    counter++;
                    System.out.println("Mary ");
                }
                
                if(counter == n) {
                    break;
                }
            }
        }
    }
}

可以仅使用 2 个循环以这种方式完成

    int n=5;
    int counter = 0;
    for(int i = 1;i<=5;i++){

        int twice = i*2;
        for(int j = 1 ; j<=twice;j++){

            if(counter == n)
                return;
            if(j<=twice/2) {
                System.out.println("Mary");
                counter++;
            }
            else{
                System.out.println("Jobert");
                counter++;
            }
        }
    }

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM