2016-10-04 9 views
0

Я занимаюсь настройкой определенных столбцов на определенные цвета без правильного результата. Я несколько тупик по большинству из них.Java: колонки с раскрашивающей решеткой с If-Else заявлениями

Буду признателен за любую помощь!

То, что я пытаюсь выполнить:

Используйте серию, если - другое заявление, чтобы сделать столбец 4 зеленый, столбец 5, синим столбец 6 красных, и оставить желтый отдых.

My (неверный) Код:

import java.awt.*; 

public class IfGrid 
{ 
    public static void main(String[] args) 
    { 
     DrawingPanel panel = new DrawingPanel(400, 400); 
     panel.setBackground(Color.blue); 
     Graphics g = panel.getGraphics(); 

     int sizeX = 40; 
     int sizeY = 40; 
     for (int x = 0; x < 10; x++) 
     { 
      for (int y = 0; y < 10; y++) 
      {  
       int cornerX = x*sizeX; 
       int cornerY = y*sizeY; 

       if (x == 4){ // If Statements start here 
        g.setColor(Color.green); } 
       if (x == 5) { 
         g.setColor(Color.blue); } 
       if (x == 6) { 
         g.setColor(Color.red); } 
       else { 
        g.setColor(Color.yellow); } 

       g.fillRect(cornerX, cornerY, sizeX-1, sizeY-1); 
       g.setColor(Color.black); 
       g.drawString("x="+x, cornerX+10, cornerY+15); // text is positioned at its baseline 
       g.drawString("y="+y, cornerX+10, cornerY+33); // offsets from the corner do centering  
      } 
     } 
    } 
} 

Что это должно выглядеть следующим образом: (я использовал краску, чтобы указать)

Correct Picture Example

Что я получаю (Wrong):

Wrong Output

ответ

2

Вы можете использовать else if решить проблему:

if (x == 4) { 
    g.setColor(Color.green); 
} else if (x == 5) { 
    g.setColor(Color.blue); 
} else if (x == 6) { 
    g.setColor(Color.red); 
} else { 
    g.setColor(Color.yellow); 
} 

В текущем коде, последнее else заявление применяется каждый раз, когда x != 6, в результате чего линия станет желтым.

+0

Итак, он проверяет, являются ли условные выражения истинными, а затем выполняет «else»? – Aramza

+1

Исправить. Он проверяет, является ли 'x' 4, 5 или 6, и если это ни один из них, он устанавливает его в желтый цвет. –

1

У вас есть 4 случая, чтобы рассмотреть следующие вопросы:

  1. х == 4, зеленый
  2. х == 5, синий
  3. х == 6, красный
  4. что-нибудь еще, желтый

Но ваш третий оператор if реализует, если x == 6 red else yellow, поэтому даже если столбец был установлен на зеленый или синий на предыдущий if, он будет снова установлен на желтый.

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

  • Нет связанных вопросов^_^