爪哇奇数循环

问题描述:

我想输出第一个“x”的几率,但我无法知道如何停止循环的数量是x。例如...如果你输入6,我希望它显示1,3,5,7,9,11。但是,我的编码完成所有可能性。爪哇奇数循环

import java.util.Scanner; 


public class OddNumber { 

public static void main(String[] args) { 
    // TODO Auto-generated method stub 

    System.out.println("Please input a number."); 
    Scanner keyboard = new Scanner(System.in); 
    int x = keyboard.nextInt(); 
    int total = x*x; 
    if (x > 0){ 
     System.out.println("The first 5 odd numbers are..."); 
    } 
    if (x > 0){ 
     for (int i = 0; i < total; i++){ 
     if (i % 2 != 0){ 
      System.out.println(i+""); 
     }} 
    System.out.println("The total is "+total); 
    } 

     } 


} 
+4

为什么连“i%2”的东西都打扰?你知道几率会分开2,所以'我= 1;我

像这样的东西应该工作:

public static void main(String[] args) { 
     // TODO Auto-generated method stub 

     System.out.println("Please input a number."); 
     Scanner keyboard = new Scanner(System.in); 
     int x = keyboard.nextInt(); 
     for(int i =1; i<=x*2; i++) { 
      if (i%2!=0) { 
       System.out.print(i+", "); 
      } 
     } 
     keyboard.close(); 
} 
+0

非常感谢! – Javier

int total = x*2; 

代替

int total = x*x; 

为你循环,你应该使用:

for (int i=0; i<x; i++) { 
    System.out.println((i*2)+1); 
} 

这最有效的(基于不同寻常的要求):

var oddNumber = 1; 
for (int i=0; i<x; i++) { 
    System.out.println(oddNumber); 
    oddNumber += 2; 
} 

更改for环路:

for (int i = 1; i <= x; i++){ 
    System.out.println(i * 2 - 1); 
} 

或替代:

for (int i = 1; i < x * 2; i = i + 2){ 
     System.out.println(i); 
} 

你如果(I%2 = 0){

你可以通过几种方式解决它。

之后,您可以:

if (i != x){ 
    System.out.print(i+", "); 
} 

或者,您可以:

if (i % 2 && i != x){ 
    System.out.print(i+", "); 
} 

,将在同一时间做两个检查。