2013-11-09 3 views
-1

Мой желаемый результат равен 1,4,9 и 16, но я застрял. Кто-нибудь знает, что не так с моим кодированием?Повторное выполнение выписки

import java.util.Scanner; 

public class JavaApplication1 { 

    public static void main(String[] args) { 

    Scanner input = new Scanner (System.in); 

    int i = 4; 
    int j = 3; 
    int x = ; 

    while(i >= 1){ 
    } 


     x = (i-j)*(i-j); 
     i = i-1; 
     j = j-2; 

    System.out.println(x); 
    } 
} 
+0

Возьмите бумагу и карандаш и записывать значения, полученные на каждой итерации для I, J и х. Вы увидите, что произойдет, и сможете исправить его и получить желаемый результат. –

+0

Или .. используйте DEBUGGER! Он поможет вам. – Maroun

+1

Я знаю, что не так с вашей кодировкой - вы делаете это слишком быстро, и в результате увязнуть с ненужной сложностью, чего можно было избежать, подумав об этом заранее. Наберите меньше, подумайте больше! – kviiri

ответ

1

По существу, вы хотите, чтобы функция, которая квадратизирует значение x. Существует множество возможностей, но ваши кажутся немного странными. Если вы не знакомы с классом Math, вы должны: иметь только одну переменную x, начиная с 1. Спросите, что x меньше 5 (вы хотите только повторять 4 раза). Заставьте компьютер выполнить x * x.

Как так:

int x = 1; 

while(x < 5){ 
    System.out.println(x*x); 
    x++; //the computer will interpret this as x = x+1 
} 
+0

Это будет печатать 1,2,3,4 (каждый на отдельной строке). Это должно быть 'System.out.println (x * x);' –

+0

@PhilipWhitehouse Спасибо :) – user2651804

Смежные вопросы